The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Bitcoin::Crypto::DerivationPath - Path for BIP32 key derivation

SYNOPSIS

        use Bitcoin::Crypto::DerivationPath;

        my $derivation_path = Bitcoin::Crypto::DerivationPath->from_string("m/1/2'/3");

        say $derivation_path->private;
        say $_ for @{$derivation_path->path};

DESCRIPTION

This is a helper object which represents the key derivation path parsed from the m notation. It is returned by "get_path_info" in Bitcoin::Crypto::Util.

INTERFACE

Attributes

private

Required in the constructor. A boolean - whether the path is private (started with lowercase m).

path

Required in the constructor. An array reference of unsigned integers - the derivation path. Hardened keys are greater than or equal to 2^31 (Bitcoin::Crypto::Constants::max_child_keys).

Methods

from_string

        $path = Bitcoin::Crypto::DerivationPath->from_string($m_notation_string)

Constructs a new derivation path based on the string.

as_string

        $m_notation_string = $object->as_string;

Does the reverse of "from_string".

get_derivation_path

        $path = $path->get_derivation_path()

A helper which returns self.

get_path_hardened

        $hardened = $path->get_path_hardened()

Returns an array reference. Each item in the array is an array reference with two values, where the first one is the path key and the second one is a boolean indicating whether that key is hardened. The first value will always be within the range 0 .. 2^31 - 1 (unlike "path", which has keys larger than that for hardened keys).