@@ -10,6 +10,7 @@ import (
1010
1111 "github.com/99designs/keyring"
1212 "github.com/cosmos/go-bip39"
13+ "github.com/pkg/errors"
1314 "github.com/stretchr/testify/require"
1415
1516 "github.com/cosmos/cosmos-sdk/codec"
@@ -1449,6 +1450,64 @@ func TestRenameKey(t *testing.T) {
14491450 }
14501451}
14511452
1453+ func TestImportPrivKeyHex (t * testing.T ) {
1454+ cdc := getCodec ()
1455+ tests := []struct {
1456+ name string
1457+ uid string
1458+ backend string
1459+ hexKey string
1460+ algo string
1461+ expectedErr error
1462+ }{
1463+ {
1464+ name : "correct import" ,
1465+ uid : "hexImport" ,
1466+ backend : BackendTest ,
1467+ hexKey : "0xa3e57952e835ed30eea86a2993ac2a61c03e74f2085b3635bd94aa4d7ae0cfdf" ,
1468+ algo : "secp256k1" ,
1469+ expectedErr : nil ,
1470+ },
1471+ {
1472+ name : "correct import without prefix" ,
1473+ uid : "hexImport" ,
1474+ backend : BackendTest ,
1475+ hexKey : "a3e57952e835ed30eea86a2993ac2a61c03e74f2085b3635bd94aa4d7ae0cfdf" ,
1476+ algo : "secp256k1" ,
1477+ expectedErr : nil ,
1478+ },
1479+ {
1480+ name : "wrong hex length" ,
1481+ uid : "hexImport" ,
1482+ backend : BackendTest ,
1483+ hexKey : "0xae57952e835ed30eea86a2993ac2a61c03e74f2085b3635bd94aa4d7ae0cfdf" ,
1484+ algo : "secp256k1" ,
1485+ expectedErr : hex .ErrLength ,
1486+ },
1487+ {
1488+ name : "unsupported algo" ,
1489+ uid : "hexImport" ,
1490+ backend : BackendTest ,
1491+ hexKey : "0xa3e57952e835ed30eea86a2993ac2a61c03e74f2085b3635bd94aa4d7ae0cfdf" ,
1492+ algo : "notSupportedAlgo" ,
1493+ expectedErr : errors .New ("provided algorithm \" notSupportedAlgo\" is not supported" ),
1494+ },
1495+ }
1496+ for _ , tt := range tests {
1497+ t .Run (tt .name , func (t * testing.T ) {
1498+ kb , err := New ("TestExport" , tt .backend , t .TempDir (), nil , cdc )
1499+ require .NoError (t , err )
1500+ err = kb .ImportPrivKeyHex (tt .uid , tt .hexKey , tt .algo )
1501+ if tt .expectedErr == nil {
1502+ require .NoError (t , err )
1503+ } else {
1504+ require .Error (t , err )
1505+ require .ErrorContains (t , err , tt .expectedErr .Error ())
1506+ }
1507+ })
1508+ }
1509+ }
1510+
14521511func requireEqualRenamedKey (t * testing.T , key * Record , mnemonic * Record , nameMatch bool ) {
14531512 if nameMatch {
14541513 require .Equal (t , key .Name , mnemonic .Name )
0 commit comments