@@ -486,12 +486,9 @@ func (s *StateDB) updateStateObject(obj *stateObject) {
486486
487487 // Encode the account and update the account trie
488488 addr := obj .Address ()
489-
490- data , err := rlp .EncodeToBytes (obj )
491- if err != nil {
492- panic (fmt .Errorf ("can't encode object at %x: %v" , addr [:], err ))
489+ if err := s .trie .TryUpdateAccount (addr [:], & obj .data ); err != nil {
490+ s .setError (fmt .Errorf ("updateStateObject (%x) error: %v" , addr [:], err ))
493491 }
494- s .setError (s .trie .TryUpdate (addr [:], data ))
495492}
496493
497494// deleteStateObject removes the given object from the state trie.
@@ -541,13 +538,13 @@ func (s *StateDB) getDeletedStateObject(addr common.Address) *stateObject {
541538 s .setError (err )
542539 return nil
543540 }
544- var data Account
545- if err := rlp .DecodeBytes (enc , & data ); err != nil {
541+ data := new (types. StateAccount )
542+ if err := rlp .DecodeBytes (enc , data ); err != nil {
546543 log .Error ("Failed to decode state object" , "addr" , addr , "err" , err )
547544 return nil
548545 }
549546 // Insert into the live set
550- obj := newObject (s , addr , data , s .MarkStateObjectDirty )
547+ obj := newObject (s , addr , * data , s .MarkStateObjectDirty )
551548 s .setStateObject (obj )
552549 return obj
553550}
@@ -576,7 +573,7 @@ func (s *StateDB) MarkStateObjectDirty(addr common.Address) {
576573func (s * StateDB ) createObject (addr common.Address ) (newobj , prev * stateObject ) {
577574 prev = s .getDeletedStateObject (addr ) // Note, prev might have been deleted, we need that!
578575
579- newobj = newObject (s , addr , Account {}, s .MarkStateObjectDirty )
576+ newobj = newObject (s , addr , types. StateAccount {}, s .MarkStateObjectDirty )
580577 newobj .setNonce (0 ) // sets the object to dirty
581578 if prev == nil {
582579 s .journal = append (s .journal , createObjectChange {account : & addr })
@@ -851,7 +848,7 @@ func (s *StateDB) Commit(deleteEmptyObjects bool) (common.Hash, error) {
851848 start := time .Now ()
852849
853850 root , accountCommitted , err := s .trie .Commit (func (_ [][]byte , _ []byte , leaf []byte , parent common.Hash ) error {
854- var account Account
851+ var account types. StateAccount
855852 if err := rlp .DecodeBytes (leaf , & account ); err != nil {
856853 return nil
857854 }
0 commit comments