code: func MakeAddress(ks *keystore.KeyStore, account string) (accounts.Account, error) {
  	// If the specified account is a valid address, return it
  	if common.IsHexAddress(account) {
  		return accounts.Account{Address: common.HexToAddress(account)}, nil
  	}
  	// Otherwise try to interpret the account as a keystore index
  	index, err := strconv.Atoi(account)
  	if err != nil || index < 0 {
  		return accounts.Account{}, fmt.Errorf("invalid account address or index %q", account)
  	}
  	log.Warn("-------------------------------------------------------------------")
  	log.Warn("Referring to accounts by order in the keystore folder is dangerous!")
  	log.Warn("This functionality is deprecated and will be removed in the future!")
  	log.Warn("Please use explicit addresses! (can search via `geth account list`)")
  	log.Warn("-------------------------------------------------------------------")
  
  	accs := ks.Accounts()
  	if len(accs) <= index {
  		return accounts.Account{}, fmt.Errorf("index %d higher than number of accounts %d", index, len(accs))
  	}
  	return accs[index], nil
  }
docs: // MakeAddress converts an account specified directly as a hex encoded string or
  // a key index in the key store to an internal account representation.