The implementation of the bitcoin protocol for ruby.
MIT License
Bot releases are hidden (Show)
This release includes the followings:
libsecp256k1.dylib
for macOS used in unit tests has been removed. you want to test using libsecp256k1 in an environment other than Linux, please set the path of the libsecp256k1 library to the environment variable TEST_LIBSECP256K1_PATH
.ECDSA::Point#to_hex
has been removed.Bitcoin::MessageSign#verify_message
. This bug only affects you if you use the Ruby implementation of this library instead of libsecp256k1.Full Changelog: https://github.com/chaintope/bitcoinrb/compare/v1.4.0...v1.5.0
Published by azuchi 10 months ago
This release includes the following changes:
Bitcoin::Script#p2pk?
method to check whether script is P2PK or not.TYPES[:uncompressed]
was specified for key_type
in the Bitcoin::Key#generate
method.Bitcoin::Script#multisig?
method when the number of signatures was an invalid value.We have deprecated support for the BIP-70 Payment Protocol, as it has also been removed from Bitcoin Core. Along with this, the dependency on activesupport
is removed.
Full Changelog: https://github.com/chaintope/bitcoinrb/compare/v1.3.0...v1.4.0
Published by azuchi over 1 year ago
This release includes the following changes:
Bitcoin::PSBT::Tx#to_h
method to output each PSBT data in Hash format.decodepsbt
option in bitcoinrb-cli
to decode Base64-format PSBT into JSON format.Bitcoin::Script#to_h
changed to return a single address.Bitcoin::Key#new
.Bitcion::ExtPubkey#derive
Bitcion::Taproot#tweak_private_key
Full Changelog: https://github.com/chaintope/bitcoinrb/compare/v1.2.1...v1.3.0
Published by azuchi almost 2 years ago
This release contains following changes:
Taproot Fields for PSBT
(BIP-371)Bitcoin::Script#to_p2tr
which creates P2TR script pubkey using xonly public keyBitcoin::Key#to_addr
which returns address correspond to key_type value and #to_p2tr which generates P2TR addressSee below for a complete list of changes:
Full Changelog: https://github.com/chaintope/bitcoinrb/compare/v1.1.1...v1.2.0
Published by azuchi over 2 years ago
This release fixes the following issues that occur in Ruby 3.1
psych 4.0.0 is now bundled with Ruby 3.1. Psych.load
has been incompatible since psych 4.0.0. Accordingly, YAML.load
has also become incompatible.
In bitcoinrb, YAML.load
is used to load network settings in Bitcoin::ChainParams
. This results in an error in Bitcoin::ChainParams
when using bitcoinrb with Ruby 3.1.
This release resolves the error by using YAML.unsafe_load
instead of YAML.load
in Ruby 3.1+.
Full Changelog: https://github.com/chaintope/bitcoinrb/compare/v1.1.0...v1.1.1
Published by azuchi over 2 years ago
The following change are included in this release:
PSBT_GLOBAL_PROPRIETARY
PSBT_IN_PROPRIETARY
PSBT_OUT_PROPRIETARY
PSBT_IN_RIPEMD160
PSBT_IN_SHA256
PSBT_IN_HASH160
PSBT_IN_HASH256
Object#build_json
and to_h
by open class with refinement(e4d4968e).Full Changelog: https://github.com/chaintope/bitcoinrb/compare/v1.0.0...v1.1.0
Published by azuchi almost 3 years ago
The following change are included in this release:
The following flags when processing scripts are now standard flags:
In previous versions, these flags had to be explicitly set when evaluating Taproot-related scripts.
Published by azuchi almost 3 years ago
The following fixes and improvements are included in this release:
Bitcoin::PSBT
supports PSBT data read from file and write to file.Bitcoin::Taproot::SimpleBuilder
change following:
Bitcoin::Taproot::LeafNode
.Bitcoin::Taproot
provides some utility methods to help spending P2TR.For more detail about how to build and spend P2TR, see the Wiki page.
Published by azuchi over 3 years ago
The following fixes and improvements are included in this release:
Bitcoin::ExtPubkey#derive
same as ExtKey#derive
(b3b2ec9)Bitcoin::Script#p2tr?
which check script whether P2TR or not(f164afe)Bitcoin::Taproot::SimpleBuilder
to support building Taproot P2TR and creating transactions when spending it.Published by azuchi over 3 years ago
This release includes the following improvements and features:
The new P2P messages sendaddrv2
and addrv2
defined in BIP-155 have been added.
Bitcoin::Message::SendAddrV2
Bitcoin::Message::AddrV2
In addition, the following features have been added that are useful for handling P2P messages.
Bitcoin::Message::Base#from_pkt(message)
: This method decodes a single P2P message containing the magic bytes and creates an instance of the corresponding message class.Bitcoin::Message#decode(command, payload)
: This method creates an instance of the corresponding message class from the P2P command and payload specified in the arguments.String#opcode
performance: The performance of String#opcode
, which is extended with open classes, has been improved. It used to convert all data to bytes, but now String#ord
is executed after specifying the character encoding. This change is not expected to have any impact, but if it does, please report it.Published by azuchi over 3 years ago
This release includes following new features, various bug fixes:
Bitcoin::RPC::BitcoinCoreClient
exception message string to JSON format. (1054307)Published by azuchi about 4 years ago
Support BIP74 (Payment code) in Bitcoin::PaymentCode
Add BIP157 messages.
Support BIP85 in Bitcoin::BIP85Entropy
#to_s
display bug when an empty string is set from the stack.Due to CVE-2020-14199, Bitcoin::PSBT::Tx
now includes and allow both non_witness_utxo
and witness_utxo
for segwit inputs.
rest-client
gem dependency.ECDSA::Point#to_hex
method which convert Elliptic Curve Point to hex string.Published by azuchi almost 5 years ago
Bitcoin::Script#to_addr
method to replace Bitcoin::Script#addresses
.