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 }