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