code: func (pm *ProtocolManager) getAccount(triedb *trie.Database, root, hash common.Hash) (state.Account, error) {
  	trie, err := trie.New(root, triedb)
  	if err != nil {
  		return state.Account{}, err
  	}
  	blob, err := trie.TryGet(hash[:])
  	if err != nil {
  		return state.Account{}, err
  	}
  	var account state.Account
  	if err = rlp.DecodeBytes(blob, &account); err != nil {
  		return state.Account{}, err
  	}
  	return account, nil
  }
docs: // getAccount retrieves an account from the state based at root.