github.com/Finschia/finschia-sdk@v0.48.1/server/init.go (about)

     1  package server
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/Finschia/finschia-sdk/crypto/keyring"
     7  	sdk "github.com/Finschia/finschia-sdk/types"
     8  )
     9  
    10  // Deprecated: GenerateCoinKey generates a new key mnemonic along with its addrress.
    11  // Please use testutils.GenerateCoinKey instead.
    12  func GenerateCoinKey(algo keyring.SignatureAlgo) (sdk.AccAddress, string, error) {
    13  	// generate a private key, with mnemonic
    14  	info, secret, err := keyring.NewInMemory().NewMnemonic(
    15  		"name",
    16  		keyring.English,
    17  		sdk.GetConfig().GetFullBIP44Path(),
    18  		keyring.DefaultBIP39Passphrase,
    19  		algo,
    20  	)
    21  	if err != nil {
    22  		return sdk.AccAddress{}, "", err
    23  	}
    24  
    25  	return sdk.AccAddress(info.GetPubKey().Address()), secret, nil
    26  }
    27  
    28  // Deprecated: GenerateSaveCoinKey generates a new key mnemonic with its addrress.
    29  // If mnemonic is provided then it's used for key generation.
    30  // The key is saved in the keyring. The function returns error if overwrite=true and the key
    31  // already exists.
    32  // Please use testutils.GenerateSaveCoinKey instead.
    33  func GenerateSaveCoinKey(
    34  	keybase keyring.Keyring,
    35  	keyName string,
    36  	overwrite bool,
    37  	algo keyring.SignatureAlgo,
    38  ) (sdk.AccAddress, string, error) {
    39  	exists := false
    40  	_, err := keybase.Key(keyName)
    41  	if err == nil {
    42  		exists = true
    43  	}
    44  
    45  	// ensure no overwrite
    46  	if !overwrite && exists {
    47  		return sdk.AccAddress{}, "", fmt.Errorf("key already exists, overwrite is disabled")
    48  	}
    49  
    50  	// remove the old key by name if it exists
    51  	if exists {
    52  		if err := keybase.Delete(keyName); err != nil {
    53  			return sdk.AccAddress{}, "", fmt.Errorf("failed to overwrite key")
    54  		}
    55  	}
    56  
    57  	k, mnemonic, err := keybase.NewMnemonic(keyName, keyring.English, sdk.GetConfig().GetFullBIP44Path(), keyring.DefaultBIP39Passphrase, algo)
    58  	if err != nil {
    59  		return sdk.AccAddress{}, "", err
    60  	}
    61  
    62  	return k.GetAddress(), mnemonic, nil
    63  }