get keys by maps.Keys

This commit is contained in:
maskpp 2024-06-13 01:31:25 +08:00
parent b6f2bbd417
commit d294dd04d5

View file

@ -29,6 +29,7 @@ import (
"github.com/ethereum/go-ethereum/ethdb" "github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/trie/triestate" "github.com/ethereum/go-ethereum/trie/triestate"
"golang.org/x/exp/maps"
) )
// State history records the state changes involved in executing a block. The // State history records the state changes involved in executing a block. The
@ -244,19 +245,13 @@ type history struct {
// newHistory constructs the state history object with provided state change set. // newHistory constructs the state history object with provided state change set.
func newHistory(root common.Hash, parent common.Hash, block uint64, states *triestate.Set) *history { func newHistory(root common.Hash, parent common.Hash, block uint64, states *triestate.Set) *history {
var ( var (
accountList []common.Address accountList = maps.Keys(states.Accounts)
storageList = make(map[common.Address][]common.Hash) storageList = make(map[common.Address][]common.Hash)
) )
for addr := range states.Accounts {
accountList = append(accountList, addr)
}
slices.SortFunc(accountList, common.Address.Cmp) slices.SortFunc(accountList, common.Address.Cmp)
for addr, slots := range states.Storages { for addr, slots := range states.Storages {
slist := make([]common.Hash, 0, len(slots)) slist := maps.Keys(slots)
for slotHash := range slots {
slist = append(slist, slotHash)
}
slices.SortFunc(slist, common.Hash.Cmp) slices.SortFunc(slist, common.Hash.Cmp)
storageList[addr] = slist storageList[addr] = slist
} }