- Use OpenSSL 1.0 over OpenSSL 1.1 for compatiblity with Ruby 2.3.
- Added support for debugging with
pry-byebug
.
- Various bug fixes
- WIP on API for the versioned scripts
BTC::Mnemonic
implements read-only part of BIP44.BTC::Keychain
implements utility methods to derive BIP44 keys.
BTC::TransactionSignatureChecker
acceptsversion
andamount
to support different hashing schemes (e.g. segwit) and passes them toBTC::Transaction#signature_hash
function.
BTC::SecretSharing
changes API to support 96-, 104- and 128-bit secrets.
BTC::SecretSharing
implements Shamir's Secret Sharing Scheme (SSSS) for splitting 128-bit secrets up to 16 shares.
BTC::Script#op_return_script?
now returnstrue
for all scripts with first opcodeOP_RETURN
, including scripts with just that opcode or non-pushdata opcodes after it.BTC::Script#op_return_data_only_script?
now returnstrue
only if there is at least one pushdata chunk afterOP_RETURN
opcode and all subsequent opcodes are pushdata-only.
- Added support for inserting scripts during script execution in
BTC::ScriptInterpreter
.
- Added more arithmetic operators to
BTC::ScriptNumber
.
- Renamed Script Plugin to Script Extension.
- Re-defined Issuance ID to not include amount. Now it is defined purely by an outpoint.
- Fixed namespace issue with
BTC::ScriptError
.
- Fixed namespace issues with
BTC::Opcodes
. - All tests are running with explicit namespaces.
- Public API for
ScriptChunk
instances. - Added
ScriptChunk#data_only?
. - Added
ScriptChunk#interpreted_data
.
- Minor fix.
- Added scripts test suite from Bitcoin Core.
- Added transactions test suite from Bitcoin Core.
- As a result, fixed a few consensus bugs.
- Renamed
TransactionOutpoint
toOutpoint
(previous name kept for backwards compatibility).
- Added work computation from bigint and 256-bit hash.
- Added full script interpreter as in Bitcoin Core 0.11.
- Added array encoding/decoding support to
BTC::WireFormat
.
- Added
int32be
encoding support.
- Added
verify_hashtype
flag to optionally check hashtype byte.
- Script
subscript
andfind_and_delete
APIs. - Fixed block parsing API (list of transactions was always empty).
- Added OP_CHECKLOCKTIMEVERIFY.
- Consistent aliasing between
==
andeql?
TransactionOutpoint
implementshash
method so it can be used as a key in a dictionary.
- Added MerkleTree API.
- Added
register_class
API to extendBTC::Address
with custom subclasses. - Added
IssuanceID
class to identify unique issuance outputs of any asset (so this can be used as a "issue-once" identifier). Support forissuance_id
in processor is pending.
- BTC::Data methods made available as methods on BTC object (
BTC::Data.data_from_hex
->BTC.from_hex
etc.)
- Added
Keychain#to_s
(returnsxpub
orxprv
). - API cleanup.
- Fixed support for HMAC functions for Ruby 2.2.
- First public release.