mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-24 18:21:38 +00:00
hd test: check masters too
This commit is contained in:
@ -25,6 +25,7 @@ import (
|
||||
|
||||
type addrData struct {
|
||||
Mnemonic string
|
||||
Master string
|
||||
Seed string
|
||||
Priv string
|
||||
Pub string
|
||||
@ -66,25 +67,30 @@ func TestHDToAddr(t *testing.T) {
|
||||
pubB, _ := hex.DecodeString(d.Pub)
|
||||
addrB, _ := hex.DecodeString(d.Addr)
|
||||
seedB, _ := hex.DecodeString(d.Seed)
|
||||
masterB, _ := hex.DecodeString(d.Master)
|
||||
|
||||
seed := bip39.NewSeed(d.Mnemonic, "")
|
||||
|
||||
fmt.Println(i, d.Mnemonic)
|
||||
|
||||
priv, pub := tylerSmith(seed)
|
||||
// priv, pub := btcsuite(seed)
|
||||
//master, priv, pub := tylerSmith(seed)
|
||||
master, priv, pub := btcsuite(seed)
|
||||
|
||||
fmt.Printf("\t%X %X\n", seedB, seed)
|
||||
fmt.Printf("\t%X %X\n", masterB, master)
|
||||
fmt.Printf("\t%X %X\n", privB, priv)
|
||||
fmt.Printf("\t%X %X\n", pubB, pub)
|
||||
_, _ = priv, privB
|
||||
|
||||
assert.Equal(t, master, masterB, fmt.Sprintf("Expected masters to match for %d", i))
|
||||
|
||||
// assert.Equal(t, priv, privB, "Expected priv keys to match")
|
||||
assert.Equal(t, pub, pubB, "Expected pub keys to match")
|
||||
assert.Equal(t, pub, pubB, fmt.Sprintf("Expected pub keys to match for %d", i))
|
||||
|
||||
var pubT crypto.PubKeySecp256k1
|
||||
copy(pubT[:], pub)
|
||||
addr := pubT.Address()
|
||||
assert.Equal(t, addr, addrB, "Expected addresses to match")
|
||||
assert.Equal(t, addr, addrB, fmt.Sprintf("Expected addresses to match %d", i))
|
||||
|
||||
/* if i%10 == 0 {
|
||||
fmt.Printf("ADDR %d: %s %X %X\n", i, d.Mnemonic, addr, addrB)
|
||||
@ -99,7 +105,7 @@ func ifExit(err error, n int) {
|
||||
}
|
||||
}
|
||||
|
||||
func btcsuite(seed []byte) ([]byte, []byte) {
|
||||
func btcsuite(seed []byte) ([]byte, []byte, []byte) {
|
||||
fmt.Println("HD")
|
||||
masterKey, err := hdkeychain.NewMaster(seed, &chaincfg.MainNetParams)
|
||||
if err != nil {
|
||||
@ -135,11 +141,12 @@ func btcsuite(seed []byte) ([]byte, []byte) {
|
||||
|
||||
priv := ecpriv.Serialize()
|
||||
pub := ecpub.SerializeCompressed()
|
||||
return priv, pub
|
||||
mkey, _ := masterKey.ECPrivKey()
|
||||
return mkey.Serialize(), priv, pub
|
||||
}
|
||||
|
||||
// return priv and pub
|
||||
func tylerSmith(seed []byte) ([]byte, []byte) {
|
||||
func tylerSmith(seed []byte) ([]byte, []byte, []byte) {
|
||||
masterKey, err := bip32.NewMasterKey(seed)
|
||||
if err != nil {
|
||||
hmac := hmac.New(sha512.New, []byte("Bitcoin seed"))
|
||||
@ -172,5 +179,5 @@ func tylerSmith(seed []byte) ([]byte, []byte) {
|
||||
|
||||
priv := k.Key
|
||||
pub := k.PublicKey().Key
|
||||
return priv, pub
|
||||
return masterKey.Key, priv, pub
|
||||
}
|
||||
|
Reference in New Issue
Block a user