github.com/cosmos/cosmos-sdk@v0.50.10/testutil/key_test.go (about) 1 package testutil 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 "github.com/cosmos/cosmos-sdk/crypto/hd" 9 "github.com/cosmos/cosmos-sdk/crypto/keyring" 10 "github.com/cosmos/cosmos-sdk/types" 11 "github.com/cosmos/cosmos-sdk/types/module/testutil" 12 ) 13 14 func TestGenerateCoinKey(t *testing.T) { 15 t.Parallel() 16 cdc := testutil.MakeTestEncodingConfig().Codec 17 addr, mnemonic, err := GenerateCoinKey(hd.Secp256k1, cdc) 18 require.NoError(t, err) 19 20 // Test creation 21 k, err := keyring.NewInMemory(cdc).NewAccount("xxx", mnemonic, "", hd.NewFundraiserParams(0, types.GetConfig().GetCoinType(), 0).String(), hd.Secp256k1) 22 require.NoError(t, err) 23 addr1, err := k.GetAddress() 24 require.NoError(t, err) 25 require.Equal(t, addr, addr1) 26 } 27 28 func TestGenerateSaveCoinKey(t *testing.T) { 29 t.Parallel() 30 31 encCfg := testutil.MakeTestEncodingConfig() 32 kb, err := keyring.New(t.Name(), "test", t.TempDir(), nil, encCfg.Codec) 33 require.NoError(t, err) 34 35 addr, mnemonic, err := GenerateSaveCoinKey(kb, "keyname", "", false, hd.Secp256k1) 36 require.NoError(t, err) 37 38 // Test key was actually saved 39 k, err := kb.Key("keyname") 40 require.NoError(t, err) 41 addr1, err := k.GetAddress() 42 require.NoError(t, err) 43 require.Equal(t, addr, addr1) 44 45 // Test in-memory recovery 46 k, err = keyring.NewInMemory(encCfg.Codec).NewAccount("xxx", mnemonic, "", hd.NewFundraiserParams(0, types.GetConfig().GetCoinType(), 0).String(), hd.Secp256k1) 47 require.NoError(t, err) 48 addr1, err = k.GetAddress() 49 require.NoError(t, err) 50 require.Equal(t, addr, addr1) 51 } 52 53 func TestGenerateSaveCoinKeyOverwriteFlag(t *testing.T) { 54 t.Parallel() 55 56 encCfg := testutil.MakeTestEncodingConfig() 57 kb, err := keyring.New(t.Name(), "test", t.TempDir(), nil, encCfg.Codec) 58 require.NoError(t, err) 59 60 keyname := "justakey" 61 addr1, _, err := GenerateSaveCoinKey(kb, keyname, "", false, hd.Secp256k1) 62 require.NoError(t, err) 63 64 // Test overwrite with overwrite=false 65 _, _, err = GenerateSaveCoinKey(kb, keyname, "", false, hd.Secp256k1) 66 require.Error(t, err) 67 68 // Test overwrite with overwrite=true 69 addr2, _, err := GenerateSaveCoinKey(kb, keyname, "", true, hd.Secp256k1) 70 require.NoError(t, err) 71 72 require.NotEqual(t, addr1, addr2) 73 }