11 KiB
4.0.1
fixed
- Fixed
tiny-secp256k1dependency version (usedecurve) (#1139) - Fixed
TransactionBuilderthrowing when trying to signP2WSH(P2WPKH)(#1135)
4.0.0
added
- Added
bip32dependency as a primary export (#1073) - Added
ECPair.fromPrivateKey(#1070) - Added
paymentsexport, with support forp2pkh,p2pk,p2ms,p2sh,p2wpkh,p2wshandembedpayment types (#1096, #1119) - Added
script.signature.encode/decodefor script signatures (#459)
changed
ECPair.prototype.signnow returns a 64-byte signatureBuffer, not anECSignatureobject (#1084)ECPair(and all ECDSA code) now usestiny-secp256k1, which uses thelibsecp256k1library (#1070)TransactionBuilderinternal variables are now__prefixed to discourage public usage (#1038)TransactionBuildernow defaults to version 2 transaction versions (#1036)script.decompilenow returnsBufferornull, if decompilation failed (#1039)
fixed
- Fixed
TransactionBuilderrejecting uncompressed public keys to comply with BIP143 (#987)
removed
- Removed Node 4/5 LTS support (#1080)
- Removed
ECPair.fromPublicKeyBuffer, useECPair.fromPublicKey(#1070) - Removed
ECPair.prototype.getAddress, usepayments.p2pkhinstead (#1085) - Removed
ECPair.prototype.getPrivateKey, useECPair.prototype.privateKeyproperty (#1070) - Removed
ECPair.prototype.getPublicKey, useECPair.prototype.publicKeyproperty (#1070) - Removed
ECPair.prototype.getNetwork, useECPair.prototype.networkproperty (#1070) - Removed
ECSignature, usescript.signature.encode/decodeinstead (#459) - Removed
HDNode, usebip32export instead (#1073) - Removed
bufferutils(#1035) - Removed
networks.litecoin, BYO non-Bitcoin networks instead (#1095) - Removed
script.isCanonicalSignature, usescript.isCanonicalScriptSignatureinstead (#1094) - Removed
script.*.input/output/checkfunctions (templates), usepayments.*instead (templatespreviously added in #681, #682) (#1119) - Removed dependency
bigi, usesbn.jsinternally now (viatiny-secp256k1) (#1070, #1112) - Removed public access to
ECPairconstructor, use exported functionsECPair.fromPrivateKey,ECPair.fromWIF,ECPair.makeRandom, orECPair.fromPublicKey(#1070)
3.3.2
fixed
- Fixed
decodeStackarbitrarily supporting non-Array arguments (#942)
3.3.1
changed
- Increased the
TransactionBuildermaximumFeeRatefrom 1000 to 2500 satoshis/byte. (#931)
3.3.0
added
- Added
ECSignature.prototype.toRSBuffer/ECSignature.fromRSBuffer(#915) - Added support to
TransactionBuilderfor 64-byte signatures via.sign(#915) - Added support to
TransactionBuilderfor the.publicKeystandard as an alternative to.getPublicKey()(#915)
3.2.1
fixed
- Fixed
script.scripthash.input.checkrecursion (#898) - Fixed
TransactionBuildersometimes ignoring witness value (#901) - Fixed
script.witnessScriptHash.inputimplementation (previously used the P2SH impl.) (#911)
3.2.0
added
- Added
address.fromBech32/toBech32(#846)
3.1.0
added
- Added
Transaction.prototype.virtualSize(#811) - Added
Transaction.prototype.weight(#811)
3.0.0
From this release users can expect out-of-the-box Segregated Witness support.
The majority of breaking changes have been in how script encoding/decoding occurs, with the introduction of witness stacks.
added
- Added
script.typesenums (#679) - Added
script.*.*.{check,encode,decode[,encodeStack,decodeStack]}functions (#681, #682) - Added minimal
TransactionBuilder.prototype.buildabsurd fee-safety (#696) - Added
script.(decompile/compile)PushOnlyandscript.toStackfunctions (#700) - Added
Transaction.prototype.toBufferSegregated Witness serialization support (#684, #701) - Added
Transaction.prototype.hasWitnesses(#718) - Added
script.witnessCommitment.*template - Added
TransactionBuilder.prototype.signnow has two additional parameters,witnessValue, andwitnessScript - Added
Transaction.hashForWitnessV0andTransaction.setWitness(5c2fdb6043)
fixed
- Fixed
scriptmust compile minimally (#638) - Fixed
TransactionandBlockversions should be Int32, signed integers (#662)
removed
- Removed
ecdsa.calcPubKeyRecoveryParam,ecdsa.recoverPubKey(#456) - Removed
buffer-equals/buffer-comparedependencies (#650) - Removed
HDNode.prototype.toString(#665) - Removed
dogecoinnetwork (#675) - Removed
messageexport, moved tobitcoinjs-message(#456)
renamed
- Removed
script.*functions in favour ofbitcoin.script.*.(input/output).(encode/decode/check)style (#682)
2.3.0
added
- Added
HDNode.prototype.isNeutered(#536) - Added
HDNode.prototype.derivePath(#538) - Added typeforce checking for
HDNode.prototype.derive*(#539) - Added
Transaction.prototype.isCoinbase(#578) - Added
Block.prototype.checkMerkleRoot(#580) - Added
Block.calculateMerkleRoot(#580) - Added
TransactionBuilder.prototype.setVersion(#599) - Added
script.isWitnessPubKeyHashOutput(#602) - Added
script.isWitnessScriptHashOutput(#602) - Added
script.witnessPubKeyHashOutput(#602) - Added
script.witnessScriptHashOutput(#602) - Added
script.witnessScriptHashInput(#602)
fixed
- Fixed "BIP32 is undefined" when network list given to
HDNodebut no compatible version found (#550) - Fixed
writePushDataIntoutput to adhere to minimal data push policy (#617)
2.2.0
added
- Added
Block.calculateTargetfor difficulty calculations (#509) - Added
Block.prototype.checkProofOfWork(#509) - Added
opcodes.OP_CHECKLOCKTIMEVERIFYalias forOP_NOP2(#511) - Added
script.number.[encode/decode]for CScriptNum-encodedBuffers (#516) - Added
TransactionBuilder.prototype.setLockTime(#507)
fixed
- Bumped
typeforceversion to fix erroneous error message fromtypes.Hash*bittypes (#534)
2.1.4
fixed
- script.isPubKeyHashOutput and script.isScriptHashOutput no longer allow for non-minimal data pushes (per bitcoin/bitcoin
IsStandardpolicy) (#499) - TransactionBuilder.addOutput now allows for SIGHASH_SINGLE, throwing if the contract is violated (#504)
- remove use of
const, use ES5 only (#502)
2.1.3
fixed
- Bumped typeforce to 1.5.5 (see #493)
2.1.2
fixed
- Add missing CHANGELOG entry for 2.1.1
2.1.1
changed
- removed use of
buffer-reverse, dependency only kept forbufferutils.reverse, to be deprecated (#478)
fixed
isMultisigOutputno longer allows data chunks form/n(#482)isMultisigOutput'snvalue must now match the number of public keys (as per bitcoin/bitcoin) (#484)
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 shoud not have to directly access HDNode internals for general usage, as it can often be confusing and error prone.
added
ECPair.prototype.getNetworkHDNode.prototype.getNetwork, wraps the underyling keyPair'sgetNetworkmethodHDNode.prototype.getPublicKeyBuffer, wraps the underyling keyPair'sgetPublicKeyBuffermethodHDNode.prototype.sign, wraps the underlying keyPair'ssignmethodHDNode.prototype.verify, wraps the underlying keyPair'sverifymethod
2.0.0
In this release we have strived to simplify the API, using native types wherevever 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
- export
address, foraddressbased utility functions, most compatible, just withoutAddressinstantiation, see #401, #444 - export
script, forscriptbased utility functions, mostly compatible, just withoutScriptinstantiation, see #438, #444 - export
ECPair, a merged replacement forECKey/ECPubKey, invalid types will throw viatypeforce
changed
-
address.toOutputScript,ECPair.prototype.fromWIFandHDNode.prototype.fromBase58no longer automatically detect the network,networks.bitcoinis always assumed unless given. -
assertwas used for type checking, now replaced bytypeforce -
BIP66compliant strict DER signature validation was added toECSignature.fromDER, changing the exact exception messages slightly, see #448. -
new HDNode(d/Q, chainCode, network)->new HDNode(keyPair, chainCode), now usesECPair -
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, ...):hashcould be a string, Transaction or Buffer ->hashcan now only be aBuffer. -
Transaction.prototype.addOutput(scriptPubKey, ...):scriptPubKeycould be a string,Addressor aBuffer->scriptPubKeycan now only be aBuffer. -
TransactionBuilderAPI unchanged.
removed
-
export
Address,stringsare now used, benchwith no performance loss for most use cases -
export
base58check, usebs58checkinstead -
export
ecdsa, useecurveinstead -
export
ECKey, use new exportECPairinstead -
export
ECPubKey, use new exportECPairinstead -
export
Wallet, see README.md#complementing-libraries instead -
export
Script, use new utility exportscriptinstead (#438 for more information) -
crypto.HmacSHA256, use node crypto instead -
crypto.HmacSHA512, use node crypto instead -
Transaction.prototype.sign, useTransactionBuilder.prototype.sign -
Transaction.prototype.signInput, useTransactionBuilder.prototype.sign -
Transaction.prototype.validateInput, useTransaction.prototype.hashForSignatureandECPair.verify -
HDNode.fromBuffer, useHDNode.fromBase58instead -
HDNode.fromHex, useHDNode.fromBase58instead -
HDNode.toBuffer, useHDNode.prototype.toBase58instead -
HDNode.toHex, useHDNode.prototype.toBase58instead -
networks.*.magic, see the comment here -
networks.[viacoin|viacointestnet|gamerscoin|jumbucks|zetacoin], import these yourself (see #383/a0e6ee7) -
networks.*.estimateFee, out-dated
renamed
Message->messagescripts->scriptscripts.dataOutput->script.nullDataOutput(per convention)