|
|
@@ -158,7 +158,11 @@ func loadDiffLayer(parent snapshot, r *rlp.Stream) (snapshot, error) {
|
|
|
}
|
|
|
accountData := make(map[common.Hash][]byte)
|
|
|
for _, entry := range accounts {
|
|
|
- accountData[entry.Hash] = entry.Blob
|
|
|
+ if len(entry.Blob) > 0 { // RLP loses nil-ness, but `[]byte{}` is not a valid item, so reinterpret that
|
|
|
+ accountData[entry.Hash] = entry.Blob
|
|
|
+ } else {
|
|
|
+ accountData[entry.Hash] = nil
|
|
|
+ }
|
|
|
}
|
|
|
var storage []journalStorage
|
|
|
if err := r.Decode(&storage); err != nil {
|
|
|
@@ -168,7 +172,11 @@ func loadDiffLayer(parent snapshot, r *rlp.Stream) (snapshot, error) {
|
|
|
for _, entry := range storage {
|
|
|
slots := make(map[common.Hash][]byte)
|
|
|
for i, key := range entry.Keys {
|
|
|
- slots[key] = entry.Vals[i]
|
|
|
+ if len(entry.Vals[i]) > 0 { // RLP loses nil-ness, but `[]byte{}` is not a valid item, so reinterpret that
|
|
|
+ slots[key] = entry.Vals[i]
|
|
|
+ } else {
|
|
|
+ slots[key] = nil
|
|
|
+ }
|
|
|
}
|
|
|
storageData[entry.Hash] = slots
|
|
|
}
|