decred.org/dcrdex@v1.0.5/dex/keygen/keygen_test.go (about) 1 package keygen 2 3 import ( 4 "bytes" 5 "testing" 6 7 "decred.org/dcrdex/dex/encode" 8 "github.com/decred/dcrd/hdkeychain/v3" 9 ) 10 11 func TestGenDeepChild(t *testing.T) { 12 seed := encode.RandomBytes(64) 13 14 root, err := hdkeychain.NewMaster(seed, &RootKeyParams{}) 15 if err != nil { 16 t.Fatalf("error getting HD keychain root: %v", err) 17 } 18 19 expectedChild, err := root.ChildBIP32Std(1) 20 if err != nil { 21 t.Fatalf("error deriving child: %v", err) 22 } 23 24 expectedChild, err = expectedChild.ChildBIP32Std(2) 25 if err != nil { 26 t.Fatalf("error deriving child: %v", err) 27 } 28 29 expectedChild, err = expectedChild.ChildBIP32Std(3) 30 if err != nil { 31 t.Fatalf("error deriving child: %v", err) 32 } 33 34 child, err := GenDeepChild(seed, []uint32{1, 2, 3}) 35 if err != nil { 36 t.Fatalf("error in GenDeepChild: %v", err) 37 } 38 39 expectedSerializedPrivKey, err := expectedChild.SerializedPrivKey() 40 if err != nil { 41 t.Fatalf("error serializing priv key: %v", err) 42 } 43 44 serializedPrivKey, err := child.SerializedPrivKey() 45 if err != nil { 46 t.Fatalf("error serializing priv key: %v", err) 47 } 48 49 if !bytes.Equal(expectedSerializedPrivKey, serializedPrivKey) { 50 t.Fatalf("private keys not equal:\n%x\n%x", expectedSerializedPrivKey, serializedPrivKey) 51 } 52 }