1 | # 2.3.0
|
2 | __added__
|
3 | - Added `HDNode.prototype.isNeutered` (#536)
|
4 | - Added `HDNode.prototype.derivePath` (#538)
|
5 | - Added typeforce checking for `HDNode.prototype.derive*` (#539)
|
6 | - Added `Transaction.prototype.isCoinbase` (#578)
|
7 | - Added `Block.prototype.checkMerkleRoot` (#580)
|
8 | - Added `Block.calculateMerkleRoot` (#580)
|
9 | - Added `TransactionBuilder.prototype.setVersion` (#599)
|
10 | - Added `script.isWitnessPubKeyHashOutput` (#602)
|
11 | - Added `script.isWitnessScriptHashOutput` (#602)
|
12 | - Added `script.witnessPubKeyHashOutput` (#602)
|
13 | - Added `script.witnessScriptHashOutput` (#602)
|
14 | - Added `script.witnessScriptHashInput` (#602)
|
15 |
|
16 | __fixed__
|
17 | - Fixed "BIP32 is undefined" when network list given to `HDNode` but no compatible version found (#550)
|
18 | - Fixed `writePushDataInt` output to adhere to minimal data push policy (#617)
|
19 |
|
20 |
|
21 | # 2.2.0
|
22 | __added__
|
23 | - Added `Block.calculateTarget` for difficulty calculations (#509)
|
24 | - Added `Block.prototype.checkProofOfWork` (#509)
|
25 | - Added `opcodes.OP_CHECKLOCKTIMEVERIFY` alias for `OP_NOP2` (#511)
|
26 | - Added `script.number.[encode/decode]` for CScriptNum-encoded `Buffer`s (#516)
|
27 | - Added `TransactionBuilder.prototype.setLockTime` (#507)
|
28 |
|
29 | __fixed__
|
30 | - Bumped `typeforce` version to fix erroneous error message from `types.Hash*bit` types (#534)
|
31 |
|
32 |
|
33 | # 2.1.4
|
34 | __fixed__
|
35 | - script.isPubKeyHashOutput and script.isScriptHashOutput no longer allow for non-minimal data pushes (per bitcoin/bitcoin `IsStandard` policy) (#499)
|
36 | - TransactionBuilder.addOutput now allows for SIGHASH_SINGLE, throwing if the contract is violated (#504)
|
37 | - remove use of `const`, use ES5 only (#502)
|
38 |
|
39 |
|
40 | # 2.1.3
|
41 | __fixed__
|
42 | - Bumped typeforce to 1.5.5 (see #493)
|
43 |
|
44 |
|
45 | # 2.1.2
|
46 | __fixed__
|
47 | - Add missing CHANGELOG entry for 2.1.1
|
48 |
|
49 |
|
50 | # 2.1.1
|
51 | __changed__
|
52 | - removed use of `buffer-reverse`, dependency only kept for `bufferutils.reverse`, to be deprecated (#478)
|
53 |
|
54 | __fixed__
|
55 | - `isMultisigOutput` no longer allows data chunks for `m`/`n` (#482)
|
56 | - `isMultisigOutput`'s `n` value must now match the number of public keys (as per bitcoin/bitcoin) (#484)
|
57 |
|
58 |
|
59 | # 2.1.0
|
60 | From this release users should use the HDNode directly (compared to accessing `.keyPair`) when performing ECDSA operations such as `sign` or `verify`.
|
61 | Ideally you shoud not have to directly access `HDNode` internals for general usage, as it can often be confusing and error prone.
|
62 |
|
63 | __added__
|
64 | - `ECPair.prototype.getNetwork`
|
65 | - `HDNode.prototype.getNetwork`, wraps the underyling keyPair's `getNetwork` method
|
66 | - `HDNode.prototype.getPublicKeyBuffer`, wraps the underyling keyPair's `getPublicKeyBuffer` method
|
67 | - `HDNode.prototype.sign`, wraps the underlying keyPair's `sign` method
|
68 | - `HDNode.prototype.verify`, wraps the underlying keyPair's `verify` method
|
69 |
|
70 |
|
71 | # 2.0.0
|
72 | 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.
|
73 |
|
74 | 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.
|
75 | Several other cumbersome modules have been removed, with their new independent modules recommended for usage instead for greater modularity in your projects.
|
76 |
|
77 | -----------------------------
|
78 |
|
79 | Backward incompatible changes:
|
80 |
|
81 | __added__
|
82 | - 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
|
83 | - 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
|
84 | - export `ECPair`, a merged replacement for `ECKey`/`ECPubKey`, invalid types will throw via `typeforce`
|
85 |
|
86 | __changed__
|
87 | - `address.toOutputScript`, `ECPair.prototype.fromWIF` and `HDNode.prototype.fromBase58` no longer automatically detect the network, `networks.bitcoin` is always assumed unless given.
|
88 | - `assert` was used for type checking, now replaced by `typeforce`
|
89 | - `BIP66` compliant strict DER signature validation was added to `ECSignature.fromDER`, changing the exact exception messages slightly, see #448.
|
90 |
|
91 | - `new HDNode(d/Q, chainCode, network)` -> `new HDNode(keyPair, chainCode)`, now uses `ECPair`
|
92 | - `HDNode.prototype.toBase58(false)` -> `HDNode.prototype.neutered().toBase58()` for exporting an extended public key
|
93 | - `HDNode.prototype.toBase58(true)` -> `HDNode.prototype.toBase58()` for exporting an extended private key
|
94 |
|
95 | - `Transaction.prototype.hashForSignature(prevOutScript, inIndex, hashType)` -> `Transaction.prototype.hashForSignature(inIndex, prevOutScript, hashType)`
|
96 | - `Transaction.prototype.addInput(hash, ...)`: `hash` could be a string, Transaction or Buffer -> `hash` can now **only** be a `Buffer`.
|
97 | - `Transaction.prototype.addOutput(scriptPubKey, ...)`: `scriptPubKey ` could be a string, `Address` or a `Buffer` -> `scriptPubKey` can now **only** be a `Buffer`.
|
98 | - `TransactionBuilder` API unchanged.
|
99 |
|
100 | __removed__
|
101 | - export `Address`, `strings` are now used, benchwith no performance loss for most use cases
|
102 | - export `base58check`, use [`bs58check`](https://github.com/bitcoinjs/bs58check) instead
|
103 | - export `ecdsa`, use [`ecurve`](https://github.com/cryptocoinjs/ecurve) instead
|
104 | - export `ECKey`, use new export `ECPair` instead
|
105 | - export `ECPubKey`, use new export `ECPair` instead
|
106 | - export `Wallet`, see README.md#complementing-libraries instead
|
107 | - export `Script`, use new utility export `script` instead (#438 for more information)
|
108 |
|
109 | - `crypto.HmacSHA256 `, use [node crypto](https://nodejs.org/api/crypto.html) instead
|
110 | - `crypto.HmacSHA512 `, use [node crypto](https://nodejs.org/api/crypto.html) instead
|
111 |
|
112 | - `Transaction.prototype.sign`, use `TransactionBuilder.prototype.sign`
|
113 | - `Transaction.prototype.signInput`, use `TransactionBuilder.prototype.sign`
|
114 | - `Transaction.prototype.validateInput`, use `Transaction.prototype.hashForSignature` and `ECPair.verify`
|
115 |
|
116 | - `HDNode.fromBuffer`, use `HDNode.fromBase58` instead
|
117 | - `HDNode.fromHex`, use `HDNode.fromBase58` instead
|
118 | - `HDNode.toBuffer`, use `HDNode.prototype.toBase58` instead
|
119 | - `HDNode.toHex`, use `HDNode.prototype.toBase58` instead
|
120 |
|
121 | - `networks.*.magic`, see the comment [here](https://github.com/bitcoinjs/bitcoinjs-lib/pull/432/files#r36715792)
|
122 | - `networks.[viacoin|viacointestnet|gamerscoin|jumbucks|zetacoin]`, import these yourself (see #383/a0e6ee7)
|
123 | - `networks.*.estimateFee`, out-dated
|
124 |
|
125 | __renamed__
|
126 | - `Message` -> `message`
|
127 | - `scripts` -> `script`
|
128 | - `scripts.dataOutput ` -> `script.nullDataOutput` (per [convention](https://org/en/glossary/null-data-transaction))
|