correct accumulation of usedAddrs in IntermediateRoot

This commit is contained in:
Jared Wasinger 2024-03-08 06:31:18 -08:00
parent 9373700e0c
commit c37d1a75e9

View file

@ -910,16 +910,14 @@ func (s *StateDB) IntermediateRoot(deleteEmptyObjects bool) common.Hash {
if obj := s.stateObjects[addr]; !obj.deleted { if obj := s.stateObjects[addr]; !obj.deleted {
s.updateStateObject(obj) s.updateStateObject(obj)
s.AccountUpdated += 1 s.AccountUpdated += 1
usedAddrs = append(usedAddrs, common.CopyBytes(addr[:])) // Copy needed for closure
} else { } else {
deletedObjects = append(deletedObjects, obj) deletedObjects = append(deletedObjects, obj)
} }
usedAddrs = append(usedAddrs, common.CopyBytes(addr[:])) usedAddrs = append(usedAddrs, common.CopyBytes(addr[:])) // Copy needed for closure
} }
for _, deletedObj := range deletedObjects { for _, deletedObj := range deletedObjects {
s.deleteStateObject(deletedObj) s.deleteStateObject(deletedObj)
s.AccountDeleted += 1 s.AccountDeleted += 1
usedAddrs = append(usedAddrs, common.CopyBytes(deletedObj.address[:])) // Copy needed for closure
} }
if prefetcher != nil { if prefetcher != nil {
prefetcher.used(common.Hash{}, s.originalRoot, usedAddrs) prefetcher.used(common.Hash{}, s.originalRoot, usedAddrs)