@@ -460,12 +460,7 @@ func (s *StateDB) updateStateObject(obj *stateObject) {
460
460
}
461
461
// Encode the account and update the account trie
462
462
addr := obj .Address ()
463
-
464
- data , err := rlp .EncodeToBytes (obj )
465
- if err != nil {
466
- panic (fmt .Errorf ("can't encode object at %x: %v" , addr [:], err ))
467
- }
468
- if err = s .trie .TryUpdate (addr [:], data ); err != nil {
463
+ if err := s .trie .TryUpdateAccount (addr [:], & obj .data ); err != nil {
469
464
s .setError (fmt .Errorf ("updateStateObject (%x) error: %v" , addr [:], err ))
470
465
}
471
466
@@ -512,7 +507,7 @@ func (s *StateDB) getDeletedStateObject(addr common.Address) *stateObject {
512
507
}
513
508
// If no live objects are available, attempt to use snapshots
514
509
var (
515
- data * Account
510
+ data * types. StateAccount
516
511
err error
517
512
)
518
513
if s .snap != nil {
@@ -524,7 +519,7 @@ func (s *StateDB) getDeletedStateObject(addr common.Address) *stateObject {
524
519
if acc == nil {
525
520
return nil
526
521
}
527
- data = & Account {
522
+ data = & types. StateAccount {
528
523
Nonce : acc .Nonce ,
529
524
Balance : acc .Balance ,
530
525
CodeHash : acc .CodeHash ,
@@ -551,7 +546,7 @@ func (s *StateDB) getDeletedStateObject(addr common.Address) *stateObject {
551
546
if len (enc ) == 0 {
552
547
return nil
553
548
}
554
- data = new (Account )
549
+ data = new (types. StateAccount )
555
550
if err := rlp .DecodeBytes (enc , data ); err != nil {
556
551
log .Error ("Failed to decode state object" , "addr" , addr , "err" , err )
557
552
return nil
@@ -588,7 +583,7 @@ func (s *StateDB) createObject(addr common.Address) (newobj, prev *stateObject)
588
583
s .snapDestructs [prev .addrHash ] = struct {}{}
589
584
}
590
585
}
591
- newobj = newObject (s , addr , Account {})
586
+ newobj = newObject (s , addr , types. StateAccount {})
592
587
if prev == nil {
593
588
s .journal .append (createObjectChange {account : & addr })
594
589
} else {
@@ -942,7 +937,7 @@ func (s *StateDB) Commit(deleteEmptyObjects bool) (common.Hash, error) {
942
937
}
943
938
// The onleaf func is called _serially_, so we can reuse the same account
944
939
// for unmarshalling every time.
945
- var account Account
940
+ var account types. StateAccount
946
941
root , accountCommitted , err := s .trie .Commit (func (_ [][]byte , _ []byte , leaf []byte , parent common.Hash ) error {
947
942
if err := rlp .DecodeBytes (leaf , & account ); err != nil {
948
943
return nil
0 commit comments