Bitcoin-Crypto
view release on metacpan or search on metacpan
lib/Bitcoin/Crypto/Key/ExtPrivate.pm view on Meta::CPAN
coerced from network id. Default: current default network.
I<writer:> C<set_network>
=head3 purpose
BIP44 purpose which was used to obtain this key. Filled automatically when
deriving an extended key. If the key was not obtained through BIP44 derivation,
this attribute is C<undef>.
I<writer:> C<set_purpose>
I<clearer:> C<clear_purpose>
=head3 depth
Integer - depth of derivation. Default: C<0> (master key)
=head3 parent_fingerprint
Bytestring of length 4 - fingerprint of the parent key. Default: four zero bytes
=head3 child_number
Integer - sequence number of the key on the current L</depth>. Default: C<0>
=head3 chain_code
Bytestring of length 32 - chain code of the extended key.
=head2 Methods
=head3 new
Constructor is reserved for internal and advanced use only. Use
L</from_mnemonic>, L</from_seed> or L</from_serialized> instead.
=head3 from_mnemonic
$key_object = $class->from_mnemonic($mnemonic, $password = '', $lang = undef)
Creates a new key from given mnemonic and password.
Note that technically any password is correct and there's no way to tell if it
was mistaken.
If you want to validate if C<$mnemonic> is a valid mnemonic you must specify
C<$lang>, e.g. C<'en'>. It will also get rid of any extra whitespace before /
after / in between words.
If no C<$lang> is given then any string passed as C<$mnemonic> will produce a
valid key. B<This means even adding whitespace (eg. trailing newline) will
produce a different key>. Be careful when using this method without C<$lang>
argument as you can easily create keys incompatible with other software due to
these whitespace problems.
This method accepts a secret argument. See L<Bitcoin::Crypto::Secret> for details.
Returns a new instance of this class.
B<Important note about unicode:> this function only accepts UTF8-decoded
strings (both C<$mnemonic> and C<$password>), but can't detect whether it got
it or not. This will only become a problem if you use non-ascii mnemonic and/or
password. If there's a possibility of non-ascii, always use utf8 and set
binmodes to get decoded (wide) characters to avoid problems recovering your
wallet.
=head3 from_seed
$key_object = $class->from_seed($seed)
Creates and returns a new key from seed, which can be any data of any length.
C<$seed> is expected to be a byte string.
This method accepts a secret argument. See L<Bitcoin::Crypto::Secret> for details.
=head3 to_serialized
$serialized = $object->to_serialized()
Returns the key serialized in format specified in BIP32 as byte string.
=head3 from_serialized
$key_object = $class->from_serialized($serialized, $network = undef)
Tries to unserialize byte string C<$serialized> with format specified in BIP32.
Dies on errors. If multiple networks match serialized data specify C<$network>
manually (id of the network) to avoid exception.
This method accepts a secret argument. See L<Bitcoin::Crypto::Secret> for details.
=head3 set_network
$object->set_network($val)
Change key's network state to C<$val>. It can be either network name present in
L<Bitcoin::Crypto::Network> package or an instance of this class.
=head3 get_public_key
$public_key_object = $object->get_public_key()
Returns instance of L<Bitcoin::Crypto::Key::ExtPublic> generated from the
private key.
=head3 get_basic_key
$basic_key_object = $object->get_basic_key()
Returns the key in basic format: L<Bitcoin::Crypto::Key::Private>
=head3 derive_key
$derived_key_object = $object->derive_key($path)
Performs extended key derivation as specified in BIP32 on the current key with
C<$path>. Dies on error.
See BIP32 document for details on derivation paths and methods.
( run in 1.083 second using v1.01-cache-2.11-cpan-39bf76dae61 )