Expose hdkeychain.Depth() - returning number of derivations since the root
This commit is contained in:
parent
61ec18f9c8
commit
5ffa719c38
2 changed files with 17 additions and 0 deletions
|
@ -171,6 +171,14 @@ func (k *ExtendedKey) IsPrivate() bool {
|
|||
return k.isPrivate
|
||||
}
|
||||
|
||||
// Depth returns the current derivation level with respect to the root.
|
||||
//
|
||||
// The root key has depth zero, and the field has a maximum of 255 due to
|
||||
// how depth is serialized.
|
||||
func (k *ExtendedKey) Depth() uint8 {
|
||||
return k.depth
|
||||
}
|
||||
|
||||
// ParentFingerprint returns a fingerprint of the parent extended key from which
|
||||
// this one was derived.
|
||||
func (k *ExtendedKey) ParentFingerprint() uint32 {
|
||||
|
|
|
@ -231,6 +231,11 @@ tests:
|
|||
}
|
||||
}
|
||||
|
||||
if extKey.Depth() != uint8(len(test.path)) {
|
||||
t.Errorf("Depth of key %d should match fixture path")
|
||||
continue
|
||||
}
|
||||
|
||||
privStr := extKey.String()
|
||||
if privStr != test.wantPriv {
|
||||
t.Errorf("Serialize #%d (%s): mismatched serialized "+
|
||||
|
@ -1042,6 +1047,10 @@ func TestMaximumDepth(t *testing.T) {
|
|||
}
|
||||
|
||||
for i := uint8(0); i < math.MaxUint8; i++ {
|
||||
if extKey.Depth() != i {
|
||||
t.Fatalf("extendedkey depth %d should match expected value %d",
|
||||
extKey.Depth(), i)
|
||||
}
|
||||
newKey, err := extKey.Child(1)
|
||||
if err != nil {
|
||||
t.Fatalf("Child: unexpected error: %v", err)
|
||||
|
|
Loading…
Reference in a new issue