bitcoinjs-lib
Advanced tools
Changelog
2.1.1
changed
buffer-reverse
, dependency only kept for bufferutils.reverse
, to be deprecated (#478)fixed
isMultisigOutput
no longer allows data chunks for m
/n
(#482)isMultisigOutput
's n
value must now match the number of public keys (as per bitcoin/bitcoin) (#484)Changelog
2.1.0
From this release users should use the HDNode directly (compared to accessing .keyPair
) when performing ECDSA operations such as sign
or verify
.
Ideally you should not have to directly access HDNode
internals for general usage, as it can often be confusing and error prone.
added
ECPair.prototype.getNetwork
HDNode.prototype.getNetwork
, wraps the underlying keyPair's getNetwork
methodHDNode.prototype.getPublicKeyBuffer
, wraps the underlying keyPair's getPublicKeyBuffer
methodHDNode.prototype.sign
, wraps the underlying keyPair's sign
methodHDNode.prototype.verify
, wraps the underlying keyPair's verify
methodChangelog
2.0.0
In this release we have strived to simplify the API, using native types wherever possible to encourage cross-compatibility with other open source community modules.
The ecdsa
module has been removed in lieu of using a new ECDSA module (for performance and safety reasons) during the 2.x.y
major release.
Several other cumbersome modules have been removed, with their new independent modules recommended for usage instead for greater modularity in your projects.
Backward incompatible changes:
added
address
, for address
based utility functions, most compatible, just without Address
instantiation, see #401, #444script
, for script
based utility functions, mostly compatible, just without Script
instantiation, see #438, #444ECPair
, a merged replacement for ECKey
/ECPubKey
, invalid types will throw via typeforce
changed
address.toOutputScript
, ECPair.prototype.fromWIF
and HDNode.prototype.fromBase58
no longer automatically detect the network, networks.bitcoin
is always assumed unless given.
assert
was used for type checking, now replaced by typeforce
BIP66
compliant strict DER signature validation was added to ECSignature.fromDER
, changing the exact exception messages slightly, see #448.
new HDNode(d/Q, chainCode, network)
-> new HDNode(keyPair, chainCode)
, now uses ECPair
HDNode.prototype.toBase58(false)
-> HDNode.prototype.neutered().toBase58()
for exporting an extended public key
HDNode.prototype.toBase58(true)
-> HDNode.prototype.toBase58()
for exporting an extended private key
Transaction.prototype.hashForSignature(prevOutScript, inIndex, hashType)
-> Transaction.prototype.hashForSignature(inIndex, prevOutScript, hashType)
Transaction.prototype.addInput(hash, ...)
: hash
could be a string, Transaction or Buffer -> hash
can now only be a Buffer
.
Transaction.prototype.addOutput(scriptPubKey, ...)
: scriptPubKey
could be a string, Address
or a Buffer
-> scriptPubKey
can now only be a Buffer
.
TransactionBuilder
API unchanged.
removed
export Address
, strings
are now used, benchwith no performance loss for most use cases
export base58check
, use bs58check
instead
export ecdsa
, use ecurve
instead
export ECKey
, use new export ECPair
instead
export ECPubKey
, use new export ECPair
instead
export Wallet
, see README.md#complementing-libraries instead
export Script
, use new utility export script
instead (#438 for more information)
crypto.HmacSHA256
, use node crypto instead
crypto.HmacSHA512
, use node crypto instead
Transaction.prototype.sign
, use TransactionBuilder.prototype.sign
Transaction.prototype.signInput
, use TransactionBuilder.prototype.sign
Transaction.prototype.validateInput
, use Transaction.prototype.hashForSignature
and ECPair.verify
HDNode.fromBuffer
, use HDNode.fromBase58
instead
HDNode.fromHex
, use HDNode.fromBase58
instead
HDNode.toBuffer
, use HDNode.prototype.toBase58
instead
HDNode.toHex
, use HDNode.prototype.toBase58
instead
networks.*.magic
, see the comment here
networks.[viacoin|viacointestnet|gamerscoin|jumbucks|zetacoin]
, import these yourself (see #383/a0e6ee7)
networks.*.estimateFee
, out-dated
renamed
Message
-> message
scripts
-> script
scripts.dataOutput
-> script.nullDataOutput
(per convention)