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

Changes for version 2.005

  • Added interface
    • Bitcoin::Crypto::PSBT namespace (support for PSBT)
    • Bitcoin::Crypto::Util::from_format function (the reverse of existing to_format)
    • Bitcoin::Crypto::Util::pack_compactsize function
    • Bitcoin::Crypto::Util::unpack_compactsize function
    • Bitcoin::Crypto::DerivationPath class (internal representation of path)
    • Bitcoin::Crypto::BIP44::get_derivation_path method (getting internal representation of BIP44 path)
    • Bitcoin::Crypto::Network::single_network class method (single-network mode)
    • Bitcoin::Crypto::Network::set_single method
    • Bitcoin::Crypto::Network::unregister method
  • Improvements
    • PSBT format from BIP174 can now be serialized, deserialized and validated using Bitcoin::Crypto::PSBT
    • transactions can now be created without registering UTXOs beforehand (with limited functionality)
    • format descriptions now also handle base64
    • extended keys can now be derived by directly passing Bitcoin::Crypto::DerivationPath
    • exception is no longer raised if the default network is among multiple possible networks after deserialization of WIFs and extended keys
    • module can now be configured to work in single-network mode, disallowing creation of objects with different networks
  • Changes and deprecations
    • codes in Bitcoin::Crypto::Script::Opcode are now integers instead of bytestrings of length 1
    • Bitcoin::Crypto::Util::get_path_info now returns instances of Bitcoin::Crypto::DerivationPath (internal structure remains unchanged)
    • Bitcoin::Crypto::Key::Public::key_hash is now deprecated, added new method get_hash (consistent naming with other modules)

Documentation

Module overview
Transaction support details

Modules

Bitcoin cryptography in Perl
BIP44 implementation
Base58 helpers
Bech32 implementation
Stripped down block instance
Path for BIP32 key derivation
Exception classes for Bitcoin::Crypto
Bitcoin extended private keys
Bitcoin extended public keys
Bitcoin private keys
Bitcoin public keys
Network management class
Partially Signed Bitcoin Transactions
Single field of a PSBT
Single map of a PSBT
Bitcoin Script instance
Bitcoin Script opcode
Bitcoin Script runner
Bitcoin transaction instance
Bitcoin transaction input instance
Bitcoin transaction output instance
Unspent transaction output instance
General Bitcoin utilities

Provides

in lib/Bitcoin/Crypto/Constants.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Exception.pm
in lib/Bitcoin/Crypto/Helpers.pm
in lib/Bitcoin/Crypto/Role/BasicKey.pm
in lib/Bitcoin/Crypto/Role/Compressed.pm
in lib/Bitcoin/Crypto/Role/ExtendedKey.pm
in lib/Bitcoin/Crypto/Role/Key.pm
in lib/Bitcoin/Crypto/Role/Network.pm
in lib/Bitcoin/Crypto/Role/ShallowClone.pm
in lib/Bitcoin/Crypto/Role/SignVerify.pm
in lib/Bitcoin/Crypto/Role/WithDerivationPath.pm
in lib/Bitcoin/Crypto/Script/Common.pm
in lib/Bitcoin/Crypto/Script/Recognition.pm
in lib/Bitcoin/Crypto/Script/Transaction.pm
in lib/Bitcoin/Crypto/Transaction/Digest.pm
in lib/Bitcoin/Crypto/Transaction/Sign.pm
in lib/Bitcoin/Crypto/Types.pm