@@ -118,17 +118,21 @@ func testFork(t *testing.T, blockchain *BlockChain, i, n int, full bool, compara
118
118
var tdPre , tdPost * big.Int
119
119
120
120
if full {
121
- tdPre = blockchain .GetTdByHash (blockchain .CurrentBlock ().Hash ())
121
+ cur := blockchain .CurrentBlock ()
122
+ tdPre = blockchain .GetTd (cur .Hash (), cur .NumberU64 ())
122
123
if err := testBlockChainImport (blockChainB , blockchain ); err != nil {
123
124
t .Fatalf ("failed to import forked block chain: %v" , err )
124
125
}
125
- tdPost = blockchain .GetTdByHash (blockChainB [len (blockChainB )- 1 ].Hash ())
126
+ last := blockChainB [len (blockChainB )- 1 ]
127
+ tdPost = blockchain .GetTd (last .Hash (), last .NumberU64 ())
126
128
} else {
127
- tdPre = blockchain .GetTdByHash (blockchain .CurrentHeader ().Hash ())
129
+ cur := blockchain .CurrentHeader ()
130
+ tdPre = blockchain .GetTd (cur .Hash (), cur .Number .Uint64 ())
128
131
if err := testHeaderChainImport (headerChainB , blockchain ); err != nil {
129
132
t .Fatalf ("failed to import forked header chain: %v" , err )
130
133
}
131
- tdPost = blockchain .GetTdByHash (headerChainB [len (headerChainB )- 1 ].Hash ())
134
+ last := headerChainB [len (headerChainB )- 1 ]
135
+ tdPost = blockchain .GetTd (last .Hash (), last .Number .Uint64 ())
132
136
}
133
137
// Compare the total difficulties of the chains
134
138
comparator (tdPre , tdPost )
@@ -165,7 +169,7 @@ func testBlockChainImport(chain types.Blocks, blockchain *BlockChain) error {
165
169
}
166
170
167
171
blockchain .chainmu .MustLock ()
168
- rawdb .WriteTd (blockchain .db , block .Hash (), block .NumberU64 (), new (big.Int ).Add (block .Difficulty (), blockchain .GetTdByHash (block .ParentHash ())))
172
+ rawdb .WriteTd (blockchain .db , block .Hash (), block .NumberU64 (), new (big.Int ).Add (block .Difficulty (), blockchain .GetTd (block .ParentHash (), block . NumberU64 () - 1 )))
169
173
rawdb .WriteBlock (blockchain .db , block )
170
174
statedb .Commit (false )
171
175
blockchain .chainmu .Unlock ()
@@ -183,7 +187,7 @@ func testHeaderChainImport(chain []*types.Header, blockchain *BlockChain) error
183
187
}
184
188
// Manually insert the header into the database, but don't reorganise (allows subsequent testing)
185
189
blockchain .chainmu .MustLock ()
186
- rawdb .WriteTd (blockchain .db , header .Hash (), header .Number .Uint64 (), new (big.Int ).Add (header .Difficulty , blockchain .GetTdByHash (header .ParentHash )))
190
+ rawdb .WriteTd (blockchain .db , header .Hash (), header .Number .Uint64 (), new (big.Int ).Add (header .Difficulty , blockchain .GetTd (header .ParentHash , header . Number . Uint64 () - 1 )))
187
191
rawdb .WriteHeader (blockchain .db , header )
188
192
blockchain .chainmu .Unlock ()
189
193
}
@@ -436,11 +440,13 @@ func testReorg(t *testing.T, first, second []int64, td int64, full bool) {
436
440
// Make sure the chain total difficulty is the correct one
437
441
want := new (big.Int ).Add (blockchain .genesisBlock .Difficulty (), big .NewInt (td ))
438
442
if full {
439
- if have := blockchain .GetTdByHash (blockchain .CurrentBlock ().Hash ()); have .Cmp (want ) != 0 {
443
+ cur := blockchain .CurrentBlock ()
444
+ if have := blockchain .GetTd (cur .Hash (), cur .NumberU64 ()); have .Cmp (want ) != 0 {
440
445
t .Errorf ("total difficulty mismatch: have %v, want %v" , have , want )
441
446
}
442
447
} else {
443
- if have := blockchain .GetTdByHash (blockchain .CurrentHeader ().Hash ()); have .Cmp (want ) != 0 {
448
+ cur := blockchain .CurrentHeader ()
449
+ if have := blockchain .GetTd (cur .Hash (), cur .Number .Uint64 ()); have .Cmp (want ) != 0 {
444
450
t .Errorf ("total difficulty mismatch: have %v, want %v" , have , want )
445
451
}
446
452
}
@@ -676,10 +682,10 @@ func TestFastVsFullChains(t *testing.T) {
676
682
for i := 0 ; i < len (blocks ); i ++ {
677
683
num , hash := blocks [i ].NumberU64 (), blocks [i ].Hash ()
678
684
679
- if ftd , atd := fast .GetTdByHash (hash ), archive .GetTdByHash (hash ); ftd .Cmp (atd ) != 0 {
685
+ if ftd , atd := fast .GetTd (hash , num ), archive .GetTd (hash , num ); ftd .Cmp (atd ) != 0 {
680
686
t .Errorf ("block #%d [%x]: td mismatch: fastdb %v, archivedb %v" , num , hash , ftd , atd )
681
687
}
682
- if antd , artd := ancient .GetTdByHash (hash ), archive .GetTdByHash (hash ); antd .Cmp (artd ) != 0 {
688
+ if antd , artd := ancient .GetTd (hash , num ), archive .GetTd (hash , num ); antd .Cmp (artd ) != 0 {
683
689
t .Errorf ("block #%d [%x]: td mismatch: ancientdb %v, archivedb %v" , num , hash , antd , artd )
684
690
}
685
691
if fheader , aheader := fast .GetHeaderByHash (hash ), archive .GetHeaderByHash (hash ); fheader .Hash () != aheader .Hash () {
0 commit comments