UNPKG

13.2 kBMarkdownView Raw
1# 5.0.4
2__added__
3- low R value support for ECPair, bip32, and TransactionBuilder (default off) via `txb.setLowR()` (#1385)
4
5__fixed__
6- Fixed Various TypeScript types that have been pushed out since v5.0.0 (#1388)
7
8# 5.0.0
9__added__
10- TypeScript support (#1319)
11- `Block.prototype.checkTxRoots` will check the merkleRoot and witnessCommit if it exists against the transactions array. (e52abec) (0426c66)
12
13__changed__
14- `Transaction.prototype.getHash` now has `forWitness?: boolean` which when true returns the hash for wtxid (a652d04)
15- `Block.calculateMerkleRoot` now has `forWitness?: boolean` which when true returns the witness commit (a652d04)
16
17__removed__
18- `Block.prototype.checkMerkleRoot` was removed, please use `checkTxRoots` (0426c66)
19
20# 4.0.5
21__fixed__
22- Fixed bug where Angular apps break due to lack of crypto at build time. Reverted #1373 and added (6bead5d).
23
24# 4.0.4
25__fixed__
26- Fixed bug where Electron v4 breaks due to lack of `'rmd160'` alias for ripemd160 hash. (#1373)
27
28# 4.0.3
29__fixed__
30- Fixed `TransactionBuilder` to require that the Transaction has outputs before signing (#1151)
31- Fixed `payments.p2sh`, which now takes the network from the redeem attribute if one is not given in the object argument (#1232)
32- Fixed `Block.calculateTarget` to allow for exponents up to 29 (#1285)
33- Fixed some low priority rarely occurring bugs with multisig payments and `TransactionBuilder` multisig processing (#1307)
34
35__added__
36- Regtest network object to `networks` (#1261)
37
38# 4.0.2
39__fixed__
40- Fixed `TransactionBuilder` not throwing when payment type validation should fail (#1195)
41
42__removed__
43- Removed rogue `package.json` from `src/payments` (#1216)
44
45# 4.0.1
46__fixed__
47- Fixed `tiny-secp256k1` dependency version (used `ecurve`) (#1139)
48- Fixed `TransactionBuilder` throwing when trying to sign `P2WSH(P2WPKH)` (#1135)
49
50# 4.0.0
51__added__
52- Added [`bip32`](https://github.com/bitcoinjs/bip32) dependency as a primary export (#1073)
53- Added `ECPair.fromPrivateKey` (#1070)
54- Added `payments` export, with support for `p2pkh`, `p2pk`, `p2ms`, `p2sh`, `p2wpkh`, `p2wsh` and `embed` payment types (#1096, #1119)
55- Added `script.signature.encode/decode` for script signatures (#459)
56
57__changed__
58- `ECPair.prototype.sign` now returns a 64-byte signature `Buffer`, not an `ECSignature` object (#1084)
59- `ECPair` (and all ECDSA code) now uses [`tiny-secp256k1`](https://github.com/bitcoinjs/tiny-secp256k1), which uses the [`libsecp256k1` library](https://github.com/bitcoin-core/secp256k1) (#1070)
60- `TransactionBuilder` internal variables are now `__` prefixed to discourage public usage (#1038)
61- `TransactionBuilder` now defaults to version 2 transaction versions (#1036)
62- `script.decompile` now returns `[Buffer]` or `null`, if decompilation failed (#1039)
63
64__fixed__
65- Fixed `TransactionBuilder` rejecting uncompressed public keys to comply with BIP143 (#987)
66
67__removed__
68- Removed Node 4/5 LTS support (#1080)
69- Removed `ECPair.fromPublicKeyBuffer`, use `ECPair.fromPublicKey` (#1070)
70- Removed `ECPair.prototype.getAddress`, use `payments.p2pkh` instead (#1085)
71- Removed `ECPair.prototype.getPrivateKey`, use `ECPair.prototype.privateKey` property (#1070)
72- Removed `ECPair.prototype.getPublicKey`, use `ECPair.prototype.publicKey` property (#1070)
73- Removed `ECPair.prototype.getNetwork`, use `ECPair.prototype.network` property (#1070)
74- Removed `ECSignature`, use `script.signature.encode/decode` instead (#459)
75- Removed `HDNode`, use `bip32` export instead (#1073)
76- Removed `bufferutils` (#1035)
77- Removed `networks.litecoin`, BYO non-Bitcoin networks instead (#1095)
78- Removed `script.isCanonicalSignature`, use `script.isCanonicalScriptSignature` instead (#1094)
79- Removed `script.*.input/output/check` functions (`templates`), use `payments.*` instead (`templates` previously added in #681, #682) (#1119)
80- Removed dependency `bigi`, uses `bn.js` internally now (via `tiny-secp256k1`) (#1070, #1112)
81- Removed public access to `ECPair` constructor, use exported functions `ECPair.fromPrivateKey`, `ECPair.fromWIF`, `ECPair.makeRandom`, or `ECPair.fromPublicKey` (#1070)
82
83# 3.3.2
84__fixed__
85- Fixed `decodeStack` arbitrarily supporting non-Array arguments (#942)
86
87# 3.3.1
88__changed__
89- Increased the `TransactionBuilder` `maximumFeeRate` from 1000 to 2500 satoshis/byte. (#931)
90
91# 3.3.0
92__added__
93- Added `ECSignature.prototype.toRSBuffer`/`ECSignature.fromRSBuffer` (#915)
94- Added support to `TransactionBuilder` for 64-byte signatures via `.sign` (#915)
95- Added support to `TransactionBuilder` for the `.publicKey` standard as an alternative to `.getPublicKey()` (#915)
96
97# 3.2.1
98__fixed__
99- Fixed `script.scripthash.input.check` recursion (#898)
100- Fixed `TransactionBuilder` sometimes ignoring witness value (#901)
101- Fixed `script.witnessScriptHash.input` implementation (previously used the P2SH impl.) (#911)
102
103# 3.2.0
104__added__
105- Added `address.fromBech32/toBech32` (#846)
106
107# 3.1.0
108__added__
109- Added `Transaction.prototype.virtualSize` (#811)
110- Added `Transaction.prototype.weight` (#811)
111
112# 3.0.0
113From this release users can expect out-of-the-box Segregated Witness support.
114The majority of breaking changes have been in how `script` encoding/decoding occurs, with the introduction of witness stacks.
115
116__added__
117- Added `script.types` enums (#679)
118- Added `script.*.*.{check,encode,decode[,encodeStack,decodeStack]}` functions (#681, #682)
119- Added minimal `TransactionBuilder.prototype.build` absurd fee-safety (#696)
120- Added `script.(decompile/compile)PushOnly` and `script.toStack` functions (#700)
121- Added `Transaction.prototype.toBuffer` Segregated Witness serialization support (#684, #701)
122- Added `Transaction.prototype.hasWitnesses` (#718)
123- Added `script.witnessCommitment.*` template
124- Added `TransactionBuilder.prototype.sign` now has two additional parameters, `witnessValue`, and `witnessScript`
125- Added `Transaction.hashForWitnessV0` and `Transaction.setWitness` (5c2fdb60436714f18440dc709f0be065928c1e49)
126
127__fixed__
128- Fixed `script` must compile minimally (#638)
129- Fixed `Transaction` and `Block` versions should be Int32, signed integers (#662)
130
131__removed__
132- Removed `ecdsa.calcPubKeyRecoveryParam`, `ecdsa.recoverPubKey` (#456)
133- Removed `buffer-equals`/`buffer-compare` dependencies (#650)
134- Removed `HDNode.prototype.toString` (#665)
135- Removed `dogecoin` network (#675)
136- Removed `message` export, moved to [`bitcoinjs-message`](https://github.com/bitcoinjs/bitcoinjs-message) (#456)
137
138__renamed__
139- Removed `script.*` functions in favour of `bitcoin.script.*.(input/output).(encode/decode/check)` style (#682)
140
141# 2.3.0
142__added__
143- Added `HDNode.prototype.isNeutered` (#536)
144- Added `HDNode.prototype.derivePath` (#538)
145- Added typeforce checking for `HDNode.prototype.derive*` (#539)
146- Added `Transaction.prototype.isCoinbase` (#578)
147- Added `Block.prototype.checkMerkleRoot` (#580)
148- Added `Block.calculateMerkleRoot` (#580)
149- Added `TransactionBuilder.prototype.setVersion` (#599)
150- Added `script.isWitnessPubKeyHashOutput` (#602)
151- Added `script.isWitnessScriptHashOutput` (#602)
152- Added `script.witnessPubKeyHashOutput` (#602)
153- Added `script.witnessScriptHashOutput` (#602)
154- Added `script.witnessScriptHashInput` (#602)
155
156__fixed__
157- Fixed "BIP32 is undefined" when network list given to `HDNode` but no compatible version found (#550)
158- Fixed `writePushDataInt` output to adhere to minimal data push policy (#617)
159
160
161# 2.2.0
162__added__
163- Added `Block.calculateTarget` for difficulty calculations (#509)
164- Added `Block.prototype.checkProofOfWork` (#509)
165- Added `opcodes.OP_CHECKLOCKTIMEVERIFY` alias for `OP_NOP2` (#511)
166- Added `script.number.[encode/decode]` for CScriptNum-encoded `Buffer`s (#516)
167- Added `TransactionBuilder.prototype.setLockTime` (#507)
168
169__fixed__
170- Bumped `typeforce` version to fix erroneous error message from `types.Hash*bit` types (#534)
171
172
173# 2.1.4
174__fixed__
175- script.isPubKeyHashOutput and script.isScriptHashOutput no longer allow for non-minimal data pushes (per bitcoin/bitcoin `IsStandard` policy) (#499)
176- TransactionBuilder.addOutput now allows for SIGHASH_SINGLE, throwing if the contract is violated (#504)
177- remove use of `const`, use ES5 only (#502)
178
179
180# 2.1.3
181__fixed__
182- Bumped typeforce to 1.5.5 (see #493)
183
184
185# 2.1.2
186__fixed__
187- Add missing CHANGELOG entry for 2.1.1
188
189
190# 2.1.1
191__changed__
192- removed use of `buffer-reverse`, dependency only kept for `bufferutils.reverse`, to be deprecated (#478)
193
194__fixed__
195- `isMultisigOutput` no longer allows data chunks for `m`/`n` (#482)
196- `isMultisigOutput`'s `n` value must now match the number of public keys (as per bitcoin/bitcoin) (#484)
197
198
199# 2.1.0
200From this release users should use the HDNode directly (compared to accessing `.keyPair`) when performing ECDSA operations such as `sign` or `verify`.
201Ideally you shoud not have to directly access `HDNode` internals for general usage, as it can often be confusing and error prone.
202
203__added__
204- `ECPair.prototype.getNetwork`
205- `HDNode.prototype.getNetwork`, wraps the underyling keyPair's `getNetwork` method
206- `HDNode.prototype.getPublicKeyBuffer`, wraps the underyling keyPair's `getPublicKeyBuffer` method
207- `HDNode.prototype.sign`, wraps the underlying keyPair's `sign` method
208- `HDNode.prototype.verify`, wraps the underlying keyPair's `verify` method
209
210
211# 2.0.0
212In this release we have strived to simplify the API, [using native types](https://github.com/bitcoinjs/bitcoinjs-lib/issues/407) wherevever possible to encourage cross-compatibility with other open source community modules.
213
214The `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.
215Several other cumbersome modules have been removed, with their new independent modules recommended for usage instead for greater modularity in your projects.
216
217-----------------------------
218
219Backward incompatible changes:
220
221__added__
222- export `address`, for `address` based [utility functions](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/src/address.js), most compatible, just without `Address` instantiation, see #401, #444
223- export `script`, for `script` based [utility functions](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/src/script.js), mostly compatible, just without `Script` instantiation, see #438, #444
224- export `ECPair`, a merged replacement for `ECKey`/`ECPubKey`, invalid types will throw via `typeforce`
225
226__changed__
227- `address.toOutputScript`, `ECPair.prototype.fromWIF` and `HDNode.prototype.fromBase58` no longer automatically detect the network, `networks.bitcoin` is always assumed unless given.
228- `assert` was used for type checking, now replaced by `typeforce`
229- `BIP66` compliant strict DER signature validation was added to `ECSignature.fromDER`, changing the exact exception messages slightly, see #448.
230
231- `new HDNode(d/Q, chainCode, network)` -> `new HDNode(keyPair, chainCode)`, now uses `ECPair`
232- `HDNode.prototype.toBase58(false)` -> `HDNode.prototype.neutered().toBase58()` for exporting an extended public key
233- `HDNode.prototype.toBase58(true)` -> `HDNode.prototype.toBase58()` for exporting an extended private key
234
235- `Transaction.prototype.hashForSignature(prevOutScript, inIndex, hashType)` -> `Transaction.prototype.hashForSignature(inIndex, prevOutScript, hashType)`
236- `Transaction.prototype.addInput(hash, ...)`: `hash` could be a string, Transaction or Buffer -> `hash` can now **only** be a `Buffer`.
237- `Transaction.prototype.addOutput(scriptPubKey, ...)`: `scriptPubKey ` could be a string, `Address` or a `Buffer` -> `scriptPubKey` can now **only** be a `Buffer`.
238- `TransactionBuilder` API unchanged.
239
240__removed__
241- export `Address`, `strings` are now used, benchwith no performance loss for most use cases
242- export `base58check`, use [`bs58check`](https://github.com/bitcoinjs/bs58check) instead
243- export `ecdsa`, use [`ecurve`](https://github.com/cryptocoinjs/ecurve) instead
244- export `ECKey`, use new export `ECPair` instead
245- export `ECPubKey`, use new export `ECPair` instead
246- export `Wallet`, see README.md#complementing-libraries instead
247- export `Script`, use new utility export `script` instead (#438 for more information)
248
249- `crypto.HmacSHA256 `, use [node crypto](https://nodejs.org/api/crypto.html) instead
250- `crypto.HmacSHA512 `, use [node crypto](https://nodejs.org/api/crypto.html) instead
251
252- `Transaction.prototype.sign`, use `TransactionBuilder.prototype.sign`
253- `Transaction.prototype.signInput`, use `TransactionBuilder.prototype.sign`
254- `Transaction.prototype.validateInput`, use `Transaction.prototype.hashForSignature` and `ECPair.verify`
255
256- `HDNode.fromBuffer`, use `HDNode.fromBase58` instead
257- `HDNode.fromHex`, use `HDNode.fromBase58` instead
258- `HDNode.toBuffer`, use `HDNode.prototype.toBase58` instead
259- `HDNode.toHex`, use `HDNode.prototype.toBase58` instead
260
261- `networks.*.magic`, see the comment [here](https://github.com/bitcoinjs/bitcoinjs-lib/pull/432/files#r36715792)
262- `networks.[viacoin|viacointestnet|gamerscoin|jumbucks|zetacoin]`, import these yourself (see #383/a0e6ee7)
263- `networks.*.estimateFee`, out-dated
264
265__renamed__
266- `Message` -> `message`
267- `scripts` -> `script`
268- `scripts.dataOutput ` -> `script.nullDataOutput` (per [convention](https://org/en/glossary/null-data-transaction))