test: keyring test refactor (#15039)
Co-authored-by: Julien Robert <julien@rbrt.fr> Co-authored-by: Likhita Polavarapu <78951027+likhita-809@users.noreply.github.com>
This commit is contained in:
parent
77d347b482
commit
0debb58c0b
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,7 @@
|
||||
package keyring
|
||||
|
||||
import (
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
@ -47,6 +48,45 @@ func TestNewSigningAlgoByString(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestDerive(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
algo SignatureAlgo
|
||||
hdPath string
|
||||
mnemonic string
|
||||
bip39Passphrase string
|
||||
derivedPriv string
|
||||
}{
|
||||
{
|
||||
name: "secp256k1",
|
||||
algo: hd.Secp256k1,
|
||||
hdPath: "m/44'/118'/0'/0/0",
|
||||
mnemonic: "circle music snake select deal march this romance until often welcome rich staff trigger drip exit there reopen denial insect hockey just wealth process",
|
||||
bip39Passphrase: "",
|
||||
derivedPriv: "1b5884fab5c22aeffef369f3454076cec534c75a4ee71add1245e2c8342994a2",
|
||||
},
|
||||
{
|
||||
name: "secp256k1 with bip39Passphrase",
|
||||
algo: hd.Secp256k1,
|
||||
hdPath: "m/44'/118'/0'/0/0",
|
||||
mnemonic: "circle music snake select deal march this romance until often welcome rich staff trigger drip exit there reopen denial insect hockey just wealth process",
|
||||
bip39Passphrase: "test",
|
||||
derivedPriv: "d5f925b9472b3793e839eae7722e5cef6766a91fad55cc42abea5e457ed5f648",
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
derivedPriv, err := tt.algo.Derive()(tt.mnemonic, tt.bip39Passphrase, tt.hdPath)
|
||||
require.NoError(t, err)
|
||||
|
||||
decodedPriv, err := hex.DecodeString(tt.derivedPriv)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, derivedPriv, decodedPriv)
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestAltSigningAlgoList_Contains(t *testing.T) {
|
||||
list := SigningAlgoList{hd.Secp256k1}
|
||||
|
||||
|
||||
@ -13,47 +13,62 @@ import (
|
||||
)
|
||||
|
||||
func Test_writeReadLedgerInfo(t *testing.T) {
|
||||
tmpKey := make([]byte, secp256k1.PubKeySize)
|
||||
hexPK := "035AD6810A47F073553FF30D2FCC7E0D3B1C0B74B61A1AAA2582344037151E143A"
|
||||
bz, err := hex.DecodeString(hexPK)
|
||||
require.NoError(t, err)
|
||||
copy(tmpKey, bz)
|
||||
tests := []struct {
|
||||
hexPK string
|
||||
recordName string
|
||||
expectedPath string
|
||||
}{
|
||||
{
|
||||
hexPK: "035AD6810A47F073553FF30D2FCC7E0D3B1C0B74B61A1AAA2582344037151E143A",
|
||||
recordName: "test_record",
|
||||
expectedPath: "m/44'/118'/5'/0/1",
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.hexPK, func(t *testing.T) {
|
||||
tmpKey := make([]byte, secp256k1.PubKeySize)
|
||||
hexPK := tt.hexPK
|
||||
bz, err := hex.DecodeString(hexPK)
|
||||
require.NoError(t, err)
|
||||
copy(tmpKey, bz)
|
||||
|
||||
pk := &secp256k1.PubKey{Key: tmpKey}
|
||||
path := hd.NewFundraiserParams(5, sdk.CoinType, 1)
|
||||
k, err := NewLedgerRecord("some_name", pk, path)
|
||||
require.NoError(t, err)
|
||||
pk := &secp256k1.PubKey{Key: tmpKey}
|
||||
path := hd.NewFundraiserParams(5, sdk.CoinType, 1)
|
||||
k, err := NewLedgerRecord(tt.recordName, pk, path)
|
||||
require.NoError(t, err)
|
||||
|
||||
l := k.GetLedger()
|
||||
require.NotNil(t, l)
|
||||
path = l.Path
|
||||
require.Equal(t, "m/44'/118'/5'/0/1", path.String())
|
||||
pubKey, err := k.GetPubKey()
|
||||
require.NoError(t, err)
|
||||
require.Equal(t,
|
||||
fmt.Sprintf("PubKeySecp256k1{%s}", hexPK),
|
||||
pubKey.String())
|
||||
l := k.GetLedger()
|
||||
require.NotNil(t, l)
|
||||
path = l.Path
|
||||
require.Equal(t, tt.expectedPath, path.String())
|
||||
pubKey, err := k.GetPubKey()
|
||||
require.NoError(t, err)
|
||||
require.Equal(t,
|
||||
fmt.Sprintf("PubKeySecp256k1{%s}", hexPK),
|
||||
pubKey.String())
|
||||
|
||||
// Serialize and restore
|
||||
cdc := getCodec()
|
||||
serialized, err := cdc.Marshal(k)
|
||||
require.NoError(t, err)
|
||||
var restoredRecord Record
|
||||
err = cdc.Unmarshal(serialized, &restoredRecord)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, restoredRecord)
|
||||
// Serialize and restore
|
||||
cdc := getCodec()
|
||||
serialized, err := cdc.Marshal(k)
|
||||
require.NoError(t, err)
|
||||
var restoredRecord Record
|
||||
err = cdc.Unmarshal(serialized, &restoredRecord)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, restoredRecord)
|
||||
|
||||
// Check both keys match
|
||||
require.Equal(t, k.Name, restoredRecord.Name)
|
||||
require.Equal(t, k.GetType(), restoredRecord.GetType())
|
||||
// Check both keys match
|
||||
require.Equal(t, k.Name, restoredRecord.Name)
|
||||
require.Equal(t, k.GetType(), restoredRecord.GetType())
|
||||
|
||||
restoredPubKey, err := restoredRecord.GetPubKey()
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, pubKey, restoredPubKey)
|
||||
restoredPubKey, err := restoredRecord.GetPubKey()
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, pubKey, restoredPubKey)
|
||||
|
||||
l = restoredRecord.GetLedger()
|
||||
require.NotNil(t, l)
|
||||
restoredPath := l.GetPath()
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, path, restoredPath)
|
||||
l = restoredRecord.GetLedger()
|
||||
require.NotNil(t, l)
|
||||
restoredPath := l.GetPath()
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, path, restoredPath)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user