@@ -20,6 +20,7 @@ import (
20
20
statesyncclient "github.com/ava-labs/subnet-evm/sync/client"
21
21
"github.com/ava-labs/subnet-evm/sync/handlers"
22
22
handlerstats "github.com/ava-labs/subnet-evm/sync/handlers/stats"
23
+ "github.com/ava-labs/subnet-evm/sync/syncutils"
23
24
"github.com/ava-labs/subnet-evm/trie"
24
25
"github.com/ethereum/go-ethereum/common"
25
26
"github.com/ethereum/go-ethereum/crypto"
@@ -120,15 +121,15 @@ func TestSimpleSyncCases(t *testing.T) {
120
121
prepareForTest : func (t * testing.T ) (ethdb.Database , ethdb.Database , * trie.Database , common.Hash ) {
121
122
serverDB := rawdb .NewMemoryDatabase ()
122
123
serverTrieDB := trie .NewDatabase (serverDB )
123
- root , _ := trie .FillAccounts (t , serverTrieDB , common.Hash {}, numAccounts , nil )
124
+ root , _ := syncutils .FillAccounts (t , serverTrieDB , common.Hash {}, numAccounts , nil )
124
125
return rawdb .NewMemoryDatabase (), serverDB , serverTrieDB , root
125
126
},
126
127
},
127
128
"accounts with code" : {
128
129
prepareForTest : func (t * testing.T ) (ethdb.Database , ethdb.Database , * trie.Database , common.Hash ) {
129
130
serverDB := rawdb .NewMemoryDatabase ()
130
131
serverTrieDB := trie .NewDatabase (serverDB )
131
- root , _ := trie .FillAccounts (t , serverTrieDB , common.Hash {}, numAccounts , func (t * testing.T , index int , account types.StateAccount ) types.StateAccount {
132
+ root , _ := syncutils .FillAccounts (t , serverTrieDB , common.Hash {}, numAccounts , func (t * testing.T , index int , account types.StateAccount ) types.StateAccount {
132
133
if index % 3 == 0 {
133
134
codeBytes := make ([]byte , 256 )
134
135
_ , err := rand .Read (codeBytes )
@@ -157,9 +158,9 @@ func TestSimpleSyncCases(t *testing.T) {
157
158
prepareForTest : func (t * testing.T ) (ethdb.Database , ethdb.Database , * trie.Database , common.Hash ) {
158
159
serverDB := rawdb .NewMemoryDatabase ()
159
160
serverTrieDB := trie .NewDatabase (serverDB )
160
- root , _ := trie .FillAccounts (t , serverTrieDB , common.Hash {}, numAccounts , func (t * testing.T , i int , account types.StateAccount ) types.StateAccount {
161
+ root , _ := syncutils .FillAccounts (t , serverTrieDB , common.Hash {}, numAccounts , func (t * testing.T , i int , account types.StateAccount ) types.StateAccount {
161
162
if i % 5 == 0 {
162
- account .Root , _ , _ = trie .GenerateTrie (t , serverTrieDB , 16 , common .HashLength )
163
+ account .Root , _ , _ = syncutils .GenerateTrie (t , serverTrieDB , 16 , common .HashLength )
163
164
}
164
165
165
166
return account
@@ -179,7 +180,7 @@ func TestSimpleSyncCases(t *testing.T) {
179
180
prepareForTest : func (t * testing.T ) (ethdb.Database , ethdb.Database , * trie.Database , common.Hash ) {
180
181
serverDB := rawdb .NewMemoryDatabase ()
181
182
serverTrieDB := trie .NewDatabase (serverDB )
182
- root , _ := trie .FillAccounts (t , serverTrieDB , common.Hash {}, numAccountsSmall , nil )
183
+ root , _ := syncutils .FillAccounts (t , serverTrieDB , common.Hash {}, numAccountsSmall , nil )
183
184
return rawdb .NewMemoryDatabase (), serverDB , serverTrieDB , root
184
185
},
185
186
GetLeafsIntercept : func (_ message.LeafsRequest , _ message.LeafsResponse ) (message.LeafsResponse , error ) {
@@ -279,8 +280,8 @@ func TestResumeSyncLargeStorageTrieInterrupted(t *testing.T) {
279
280
serverDB := rawdb .NewMemoryDatabase ()
280
281
serverTrieDB := trie .NewDatabase (serverDB )
281
282
282
- largeStorageRoot , _ , _ := trie .GenerateTrie (t , serverTrieDB , 2000 , common .HashLength )
283
- root , _ := trie .FillAccounts (t , serverTrieDB , common.Hash {}, 2000 , func (t * testing.T , index int , account types.StateAccount ) types.StateAccount {
283
+ largeStorageRoot , _ , _ := syncutils .GenerateTrie (t , serverTrieDB , 2000 , common .HashLength )
284
+ root , _ := syncutils .FillAccounts (t , serverTrieDB , common.Hash {}, 2000 , func (t * testing.T , index int , account types.StateAccount ) types.StateAccount {
284
285
// Set the root for a single account
285
286
if index == 10 {
286
287
account .Root = largeStorageRoot
@@ -311,16 +312,16 @@ func TestResumeSyncToNewRootAfterLargeStorageTrieInterrupted(t *testing.T) {
311
312
serverDB := rawdb .NewMemoryDatabase ()
312
313
serverTrieDB := trie .NewDatabase (serverDB )
313
314
314
- largeStorageRoot1 , _ , _ := trie .GenerateTrie (t , serverTrieDB , 2000 , common .HashLength )
315
- largeStorageRoot2 , _ , _ := trie .GenerateTrie (t , serverTrieDB , 2000 , common .HashLength )
316
- root1 , _ := trie .FillAccounts (t , serverTrieDB , common.Hash {}, 2000 , func (t * testing.T , index int , account types.StateAccount ) types.StateAccount {
315
+ largeStorageRoot1 , _ , _ := syncutils .GenerateTrie (t , serverTrieDB , 2000 , common .HashLength )
316
+ largeStorageRoot2 , _ , _ := syncutils .GenerateTrie (t , serverTrieDB , 2000 , common .HashLength )
317
+ root1 , _ := syncutils .FillAccounts (t , serverTrieDB , common.Hash {}, 2000 , func (t * testing.T , index int , account types.StateAccount ) types.StateAccount {
317
318
// Set the root for a single account
318
319
if index == 10 {
319
320
account .Root = largeStorageRoot1
320
321
}
321
322
return account
322
323
})
323
- root2 , _ := trie .FillAccounts (t , serverTrieDB , root1 , 100 , func (t * testing.T , index int , account types.StateAccount ) types.StateAccount {
324
+ root2 , _ := syncutils .FillAccounts (t , serverTrieDB , root1 , 100 , func (t * testing.T , index int , account types.StateAccount ) types.StateAccount {
324
325
if index == 20 {
325
326
account .Root = largeStorageRoot2
326
327
}
@@ -352,8 +353,8 @@ func TestResumeSyncLargeStorageTrieWithConsecutiveDuplicatesInterrupted(t *testi
352
353
serverDB := rawdb .NewMemoryDatabase ()
353
354
serverTrieDB := trie .NewDatabase (serverDB )
354
355
355
- largeStorageRoot , _ , _ := trie .GenerateTrie (t , serverTrieDB , 2000 , common .HashLength )
356
- root , _ := trie .FillAccounts (t , serverTrieDB , common.Hash {}, 100 , func (t * testing.T , index int , account types.StateAccount ) types.StateAccount {
356
+ largeStorageRoot , _ , _ := syncutils .GenerateTrie (t , serverTrieDB , 2000 , common .HashLength )
357
+ root , _ := syncutils .FillAccounts (t , serverTrieDB , common.Hash {}, 100 , func (t * testing.T , index int , account types.StateAccount ) types.StateAccount {
357
358
// Set the root for 2 successive accounts
358
359
if index == 10 || index == 11 {
359
360
account .Root = largeStorageRoot
@@ -384,8 +385,8 @@ func TestResumeSyncLargeStorageTrieWithSpreadOutDuplicatesInterrupted(t *testing
384
385
serverDB := rawdb .NewMemoryDatabase ()
385
386
serverTrieDB := trie .NewDatabase (serverDB )
386
387
387
- largeStorageRoot , _ , _ := trie .GenerateTrie (t , serverTrieDB , 2000 , common .HashLength )
388
- root , _ := trie .FillAccounts (t , serverTrieDB , common.Hash {}, 100 , func (t * testing.T , index int , account types.StateAccount ) types.StateAccount {
388
+ largeStorageRoot , _ , _ := syncutils .GenerateTrie (t , serverTrieDB , 2000 , common .HashLength )
389
+ root , _ := syncutils .FillAccounts (t , serverTrieDB , common.Hash {}, 100 , func (t * testing.T , index int , account types.StateAccount ) types.StateAccount {
389
390
if index == 10 || index == 90 {
390
391
account .Root = largeStorageRoot
391
392
}
@@ -464,7 +465,11 @@ func TestResyncNewRootAfterDeletes(t *testing.T) {
464
465
continue
465
466
}
466
467
corruptedStorageRoots [acc .Root ] = struct {}{}
467
- trie .CorruptTrie (t , clientTrieDB , acc .Root , 2 )
468
+ tr , err := trie .New (trie .TrieID (acc .Root ), clientTrieDB )
469
+ if err != nil {
470
+ t .Fatal (err )
471
+ }
472
+ syncutils .CorruptTrie (t , clientDB , tr , 2 )
468
473
}
469
474
if err := it .Err ; err != nil {
470
475
t .Fatal (err )
@@ -474,7 +479,11 @@ func TestResyncNewRootAfterDeletes(t *testing.T) {
474
479
"delete intermediate account trie nodes" : {
475
480
deleteBetweenSyncs : func (t * testing.T , root common.Hash , clientDB ethdb.Database ) {
476
481
clientTrieDB := trie .NewDatabase (clientDB )
477
- trie .CorruptTrie (t , clientTrieDB , root , 5 )
482
+ tr , err := trie .New (trie .TrieID (root ), clientTrieDB )
483
+ if err != nil {
484
+ t .Fatal (err )
485
+ }
486
+ syncutils .CorruptTrie (t , clientDB , tr , 5 )
478
487
},
479
488
},
480
489
} {
0 commit comments