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