code: func (s *StateDB) updateStateObject(stateObject *stateObject) {
  	// Track the amount of time wasted on updating the account from the trie
  	if metrics.EnabledExpensive {
  		defer func(start time.Time) { s.AccountUpdates += time.Since(start) }(time.Now())
  	}
  	// Encode the account and update the account trie
  	addr := stateObject.Address()
  
  	data, err := rlp.EncodeToBytes(stateObject)
  	if err != nil {
  		panic(fmt.Errorf("can't encode object at %x: %v", addr[:], err))
  	}
  	s.setError(s.trie.TryUpdate(addr[:], data))
  }
docs: //
  // Setting, updating & deleting state object methods.
  //
  // updateStateObject writes the given object to the trie.