mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-17 18:30:45 +00:00
Merge branch 'ethereum:master' into crypto-signunsafe-counter
This commit is contained in:
commit
be09601f48
2 changed files with 11 additions and 3 deletions
|
|
@ -98,7 +98,7 @@ func newFlatReader(reader database.StateReader) *flatReader {
|
||||||
//
|
//
|
||||||
// The returned account might be nil if it's not existent.
|
// The returned account might be nil if it's not existent.
|
||||||
func (r *flatReader) Account(addr common.Address) (*types.StateAccount, error) {
|
func (r *flatReader) Account(addr common.Address) (*types.StateAccount, error) {
|
||||||
account, err := r.reader.Account(crypto.Keccak256Hash(addr.Bytes()))
|
account, err := r.reader.Account(crypto.Keccak256Hash(addr[:]))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
@ -128,8 +128,8 @@ func (r *flatReader) Account(addr common.Address) (*types.StateAccount, error) {
|
||||||
//
|
//
|
||||||
// The returned storage slot might be empty if it's not existent.
|
// The returned storage slot might be empty if it's not existent.
|
||||||
func (r *flatReader) Storage(addr common.Address, key common.Hash) (common.Hash, error) {
|
func (r *flatReader) Storage(addr common.Address, key common.Hash) (common.Hash, error) {
|
||||||
addrHash := crypto.Keccak256Hash(addr.Bytes())
|
addrHash := crypto.Keccak256Hash(addr[:])
|
||||||
slotHash := crypto.Keccak256Hash(key.Bytes())
|
slotHash := crypto.Keccak256Hash(key[:])
|
||||||
ret, err := r.reader.Storage(addrHash, slotHash)
|
ret, err := r.reader.Storage(addrHash, slotHash)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return common.Hash{}, err
|
return common.Hash{}, err
|
||||||
|
|
|
||||||
|
|
@ -474,6 +474,14 @@ func (s *stateObject) commit() (*accountUpdate, *trienode.NodeSet, error) {
|
||||||
s.origin = s.data.Copy()
|
s.origin = s.data.Copy()
|
||||||
return op, nil, nil
|
return op, nil, nil
|
||||||
}
|
}
|
||||||
|
// In Verkle/binary trie mode, all state objects share one unified trie.
|
||||||
|
// The main account trie commit in stateDB.commit() already calls
|
||||||
|
// CollectNodes on this trie, so calling Commit here again would
|
||||||
|
// redundantly traverse and serialize the entire tree per dirty account.
|
||||||
|
if s.db.GetTrie().IsVerkle() {
|
||||||
|
s.origin = s.data.Copy()
|
||||||
|
return op, nil, nil
|
||||||
|
}
|
||||||
root, nodes := s.trie.Commit(false)
|
root, nodes := s.trie.Commit(false)
|
||||||
s.data.Root = root
|
s.data.Root = root
|
||||||
s.origin = s.data.Copy()
|
s.origin = s.data.Copy()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue