code: func GeneratePrivateAccount() (*PrivateAccount, error) {
  	privateKey, err := crypto.GeneratePrivateKey(nil, crypto.CurveTypeEd25519)
  	if err != nil {
  		return nil, err
  	}
  	publicKey := privateKey.GetPublicKey()
  	return ConcretePrivateAccount{
  		Address:    publicKey.GetAddress(),
  		PublicKey:  publicKey,
  		PrivateKey: privateKey,
  	}.PrivateAccount(), nil
  }
docs: // Generates a new account with private key.