Skip to content

Commit 0fe47e9

Browse files
kielbarrykaralabe
authored andcommitted
trie: fixes to comply with golint (#16771)
1 parent 415969f commit 0fe47e9

File tree

5 files changed

+26
-21
lines changed

5 files changed

+26
-21
lines changed

les/odr_requests.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ func (r *TrieRequest) Validate(db ethdb.Database, msg *Msg) error {
230230
}
231231
nodeSet := proofs[0].NodeSet()
232232
// Verify the proof and store if checks out
233-
if _, err, _ := trie.VerifyProof(r.Id.Root, r.Key, nodeSet); err != nil {
233+
if _, _, err := trie.VerifyProof(r.Id.Root, r.Key, nodeSet); err != nil {
234234
return fmt.Errorf("merkle proof verification failed: %v", err)
235235
}
236236
r.Proof = nodeSet
@@ -241,7 +241,7 @@ func (r *TrieRequest) Validate(db ethdb.Database, msg *Msg) error {
241241
// Verify the proof and store if checks out
242242
nodeSet := proofs.NodeSet()
243243
reads := &readTraceDB{db: nodeSet}
244-
if _, err, _ := trie.VerifyProof(r.Id.Root, r.Key, reads); err != nil {
244+
if _, _, err := trie.VerifyProof(r.Id.Root, r.Key, reads); err != nil {
245245
return fmt.Errorf("merkle proof verification failed: %v", err)
246246
}
247247
// check if all nodes have been read by VerifyProof
@@ -400,7 +400,7 @@ func (r *ChtRequest) Validate(db ethdb.Database, msg *Msg) error {
400400
var encNumber [8]byte
401401
binary.BigEndian.PutUint64(encNumber[:], r.BlockNum)
402402

403-
value, err, _ := trie.VerifyProof(r.ChtRoot, encNumber[:], light.NodeList(proof.Proof).NodeSet())
403+
value, _, err := trie.VerifyProof(r.ChtRoot, encNumber[:], light.NodeList(proof.Proof).NodeSet())
404404
if err != nil {
405405
return err
406406
}
@@ -435,7 +435,7 @@ func (r *ChtRequest) Validate(db ethdb.Database, msg *Msg) error {
435435
binary.BigEndian.PutUint64(encNumber[:], r.BlockNum)
436436

437437
reads := &readTraceDB{db: nodeSet}
438-
value, err, _ := trie.VerifyProof(r.ChtRoot, encNumber[:], reads)
438+
value, _, err := trie.VerifyProof(r.ChtRoot, encNumber[:], reads)
439439
if err != nil {
440440
return fmt.Errorf("merkle proof verification failed: %v", err)
441441
}
@@ -529,7 +529,7 @@ func (r *BloomRequest) Validate(db ethdb.Database, msg *Msg) error {
529529

530530
for i, idx := range r.SectionIdxList {
531531
binary.BigEndian.PutUint64(encNumber[2:], idx)
532-
value, err, _ := trie.VerifyProof(r.BloomTrieRoot, encNumber[:], reads)
532+
value, _, err := trie.VerifyProof(r.BloomTrieRoot, encNumber[:], reads)
533533
if err != nil {
534534
return err
535535
}

trie/iterator.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ type nodeIterator struct {
9999
err error // Failure set in case of an internal error in the iterator
100100
}
101101

102-
// iteratorEnd is stored in nodeIterator.err when iteration is done.
103-
var iteratorEnd = errors.New("end of iteration")
102+
// errIteratorEnd is stored in nodeIterator.err when iteration is done.
103+
var errIteratorEnd = errors.New("end of iteration")
104104

105105
// seekError is stored in nodeIterator.err if the initial seek has failed.
106106
type seekError struct {
@@ -162,7 +162,7 @@ func (it *nodeIterator) Path() []byte {
162162
}
163163

164164
func (it *nodeIterator) Error() error {
165-
if it.err == iteratorEnd {
165+
if it.err == errIteratorEnd {
166166
return nil
167167
}
168168
if seek, ok := it.err.(seekError); ok {
@@ -176,7 +176,7 @@ func (it *nodeIterator) Error() error {
176176
// sets the Error field to the encountered failure. If `descend` is false,
177177
// skips iterating over any subnodes of the current node.
178178
func (it *nodeIterator) Next(descend bool) bool {
179-
if it.err == iteratorEnd {
179+
if it.err == errIteratorEnd {
180180
return false
181181
}
182182
if seek, ok := it.err.(seekError); ok {
@@ -201,8 +201,8 @@ func (it *nodeIterator) seek(prefix []byte) error {
201201
// Move forward until we're just before the closest match to key.
202202
for {
203203
state, parentIndex, path, err := it.peek(bytes.HasPrefix(key, it.path))
204-
if err == iteratorEnd {
205-
return iteratorEnd
204+
if err == errIteratorEnd {
205+
return errIteratorEnd
206206
} else if err != nil {
207207
return seekError{prefix, err}
208208
} else if bytes.Compare(path, key) >= 0 {
@@ -246,7 +246,7 @@ func (it *nodeIterator) peek(descend bool) (*nodeIteratorState, *int, []byte, er
246246
// No more child nodes, move back up.
247247
it.pop()
248248
}
249-
return nil, nil, nil, iteratorEnd
249+
return nil, nil, nil, errIteratorEnd
250250
}
251251

252252
func (st *nodeIteratorState) resolve(tr *Trie, path []byte) error {

trie/proof.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,28 +102,28 @@ func (t *SecureTrie) Prove(key []byte, fromLevel uint, proofDb ethdb.Putter) err
102102
// VerifyProof checks merkle proofs. The given proof must contain the value for
103103
// key in a trie with the given root hash. VerifyProof returns an error if the
104104
// proof contains invalid trie nodes or the wrong value.
105-
func VerifyProof(rootHash common.Hash, key []byte, proofDb DatabaseReader) (value []byte, err error, nodes int) {
105+
func VerifyProof(rootHash common.Hash, key []byte, proofDb DatabaseReader) (value []byte, nodes int, err error) {
106106
key = keybytesToHex(key)
107107
wantHash := rootHash
108108
for i := 0; ; i++ {
109109
buf, _ := proofDb.Get(wantHash[:])
110110
if buf == nil {
111-
return nil, fmt.Errorf("proof node %d (hash %064x) missing", i, wantHash), i
111+
return nil, i, fmt.Errorf("proof node %d (hash %064x) missing", i, wantHash)
112112
}
113113
n, err := decodeNode(wantHash[:], buf, 0)
114114
if err != nil {
115-
return nil, fmt.Errorf("bad proof node %d: %v", i, err), i
115+
return nil, i, fmt.Errorf("bad proof node %d: %v", i, err)
116116
}
117117
keyrest, cld := get(n, key)
118118
switch cld := cld.(type) {
119119
case nil:
120120
// The trie doesn't contain the key.
121-
return nil, nil, i
121+
return nil, i, nil
122122
case hashNode:
123123
key = keyrest
124124
copy(wantHash[:], cld)
125125
case valueNode:
126-
return cld, nil, i + 1
126+
return cld, i + 1, nil
127127
}
128128
}
129129
}

trie/proof_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ func TestProof(t *testing.T) {
4040
if trie.Prove(kv.k, 0, proofs) != nil {
4141
t.Fatalf("missing key %x while constructing proof", kv.k)
4242
}
43-
val, err, _ := VerifyProof(root, kv.k, proofs)
43+
val, _, err := VerifyProof(root, kv.k, proofs)
4444
if err != nil {
4545
t.Fatalf("VerifyProof error for key %x: %v\nraw proof: %v", kv.k, err, proofs)
4646
}
@@ -58,7 +58,7 @@ func TestOneElementProof(t *testing.T) {
5858
if len(proofs.Keys()) != 1 {
5959
t.Error("proof should have one element")
6060
}
61-
val, err, _ := VerifyProof(trie.Hash(), []byte("k"), proofs)
61+
val, _, err := VerifyProof(trie.Hash(), []byte("k"), proofs)
6262
if err != nil {
6363
t.Fatalf("VerifyProof error: %v\nproof hashes: %v", err, proofs.Keys())
6464
}
@@ -82,7 +82,7 @@ func TestVerifyBadProof(t *testing.T) {
8282
proofs.Delete(key)
8383
mutateByte(node)
8484
proofs.Put(crypto.Keccak256(node), node)
85-
if _, err, _ := VerifyProof(root, kv.k, proofs); err == nil {
85+
if _, _, err := VerifyProof(root, kv.k, proofs); err == nil {
8686
t.Fatalf("expected proof to fail for key %x", kv.k)
8787
}
8888
}
@@ -131,7 +131,7 @@ func BenchmarkVerifyProof(b *testing.B) {
131131
b.ResetTimer()
132132
for i := 0; i < b.N; i++ {
133133
im := i % len(keys)
134-
if _, err, _ := VerifyProof(root, []byte(keys[im]), proofs[im]); err != nil {
134+
if _, _, err := VerifyProof(root, []byte(keys[im]), proofs[im]); err != nil {
135135
b.Fatalf("key %x: %v", keys[im], err)
136136
}
137137
}

trie/secure_trie.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,14 +155,19 @@ func (t *SecureTrie) Commit(onleaf LeafCallback) (root common.Hash, err error) {
155155
return t.trie.Commit(onleaf)
156156
}
157157

158+
// Hash returns the root hash of SecureTrie. It does not write to the
159+
// database and can be used even if the trie doesn't have one.
158160
func (t *SecureTrie) Hash() common.Hash {
159161
return t.trie.Hash()
160162
}
161163

164+
// Root returns the root hash of SecureTrie.
165+
// Deprecated: use Hash instead.
162166
func (t *SecureTrie) Root() []byte {
163167
return t.trie.Root()
164168
}
165169

170+
// Copy returns a copy of SecureTrie.
166171
func (t *SecureTrie) Copy() *SecureTrie {
167172
cpy := *t
168173
return &cpy

0 commit comments

Comments
 (0)