UNPKG

8.35 kBMarkdownView Raw
1# Changelog
2All notable changes to the project will be documented in this file.
3
4The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
5and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
7## [19.0.0] - 2019-02-21
8
9### Added
10
11- Moved common user session related functions into `UserSession`. Session configuration is
12done through AppConfig objects. This change removes the library's dependency on browser
13environments.
14- List of functions moved: redirectToSignIn(), isUserSignedIn(), isSignInPending(),
15handlePendingSignIn(), loadUserData(), signUserOut(), getFile(), putFile(),
16encryptContent(), decryptContent(), listfile(), deleteFile()
17- The public API will remain backward compatible until a future release.
18
19### Changed
20
21- `loadUserData()` now throws an error instead of returning null if no signed in user session
22is detected
23
24## [18.3.0] - 2019-01-29
25
26### Changed
27
28- New method for auth protocol handler detection. This should fix sign in flows for
29most major web browsers and operating systems with both the native browser installed and
30not installed.
31- NOTE: If you're using this version of blockstack.js with an old version of the native
32browser, the app will (1) open an auth handler in the native browser and (2) also redirect
33the original tab to browser.blockstack.org.
34
35## [18.2.1] - 2019-01-08
36
37### Added
38
39- Added automatic retry logic to `putFile` in the case of a failed storage call. This might be
40the case if there have been any token revokations. This new logic will catch the first failed write,
41construct (and cache) a new Gaia token, and then attempt the write again. This allows tokens
42to be revoked without any hiccups from a user experience standpoint.
43
44## [18.2.0] - 2018-12-20
45
46### Added
47
48- Added an extra parameter to `makeAuthRequest`, called `extraParams`. This is a wildcard object,
49and all keys and values included in this argument will be included in the `payload` of
50an `authRequest`.
51- `authRequest` version bumped to `1.3.1` from `1.3.0`.
52
53## [18.1.0] - 2018-10-24
54
55### Added
56- The `BlockstackWallet` class in `blockstack.js` supports generating
57 private keys and addresses within the hierarchical derivation scheme
58 used by the Blockstack Browser and supported by the Blockstack
59 ecosystem.
60- A `listFiles` function allows an application to list files in its
61 Gaia storage bucket.
62- In the transaction generation library, the makeTX functions now
63 take an optional 'buildIncomplete' argument, allowing you to get
64 a serialized transaction which hasn't been fully signed yet.
65- A `blockstackAPIUrl` field to the authentication response token that overrides the default
66 in `blockstack.config.network` allowing the user to specify their own Blockstack
67 Core node.
68- A `gaiaAssociationToken` field to the authentication response token which enables
69 users to run private Gaia hubs without authorization each application address.
70- An option `contentType` to the `putFile` `options` object that sets the
71 Content-Type header for unencrypted data. Thanks to @muneebm for this!
72
73### Changed
74- Fixed a bug in version checking during the authentication process
75 that manifested itself when signing in with apps using very old versions
76 of blockstack.js.
77- Default redirect URI changed from origin plus trailing slash to the
78 origin. For example, app with origin `https://example.com` default
79 redirect URI which was previously `https://example.com/` is
80 now `https://example.com`.
81- Fixed a couple bugs in the transaction generation, networking
82 code. First, coerce address now correctly coerces P2SH
83 addresses. Second, bitcoinjs-lib recently switched to defaulting to
84 version 2 transactions, which breaks our interoperability with a handful
85 of other libraries. Finally, with this comes a little bit of refactoring,
86 to reduce the repeated code in the transaction libraries.
87- Increments the authentication process version to 1.3 in a backwards compatible change.
88- When using the bitcoind client in development networks,
89 track which addresses we've already called `importaddress` with
90 and do not retry.
91
92## [18.0.4] - 2018-08-06
93
94### Changed
95- Resolve unsupported protocol error by redirecting
96 to hosted authenticator on all mobile devices
97
98## [18.0.3] - 2018-08-01
99
100### Changed
101- Resolve unsupported protocol error by redirecting
102 to hosted authenticator on iOS
103
104## [18.0.2] - 2018-07-27
105
106### Changed
107- Update `bitcoinjs-lib` to version 4.0.0.
108
109## [18.0.1] - 2018-07-27
110
111### Changed
112- Switched from `cross-fetch` to `cross-fetch/polyfill` to fix a bug that caused
113 network requests to fail in node environments
114
115## [18.0.0]
116
117### Added
118
119- Support for `verify` and `sign` keywords in `getFile` and `putFile`
120 respectively. This enables support for ECDSA signatures on SHA256
121 hashes in the storage operations, and works for encrypted and
122 unencrypted files, in addition to multi-player reads (for
123 unencrypted files).
124- New `TransactionSigner` interface to allow for different signing agents
125 in the `transactions` functions (e.g., makePreorder).
126- `putFile` can now optionally take the public key for which you want
127 to encrypt the file. Thanks to @bodymindarts for this!
128- `handlePendingSignIn` now accepts `transitKey` as an optional 3rd parameter.
129 This enables support for more complex sign in flows.
130
131### Changed
132- The gaia hub connection functions now use a JWT for authentication,
133 the "v1" gaia authentication token. This is *not* a backwards
134 compatible change-- an app using this version of `blockstack.js`
135 will refuse to downgrade to the old protocol version unless the old
136 gaia authentication provides a very specific challenge text matching
137 the normal gaia hub challenge text.
138- `encryptContent` now takes a public key instead of a private key to
139 encrypt content for other users.
140- The validateProofs() method now handles errors in proof-checking
141 more seamlessly, properly catching failed promises. Previous error
142 cases which resulted in uncaught exception warnings and null
143 responses should now behave correctly.
144- `handlePendingSignIn` now takes a second parameter which is the
145 signed authentication response token. Thanks to @muneebm for this!
146- Fixed an issue in `ecPairToHexString` that may result in generation of
147 an incorrectly hex string encoding of the private key.
148- Proofs now support subdomains.
149- Updated a number of dependencies to fix know vulnerablities.
150- Switched from isomorphic-fetch to the better maintained cross-fetch
151 which will improve functionality of the library in node environments.
152
153
154## [17.2.0]
155
156### Added
157
158- `encryptContent` and `decryptContent` methods for encrypting strings
159 and buffers with specific keys, or by default, the
160 appPrivateKey. Thanks to @nikkolasg and @nivas8292 for PRs on this
161 work.
162- Functions in `transactions` to support namespace creation
163 (`NAMESPACE_PREORDER`, `NAMESPACE_REVEAL`, `NAMESPACE_IMPORT`,
164 `ANNOUNCE`, and `NAMESPACE_READY`). Thanks @jcnelson.
165- Support for `NAME_REVOKE` transactions. Thanks @jcnelson.
166- `transactions.AmountType` Flow union type that captures both the
167 type of JSON response from the stable `/v1/prices/*` RESTful
168 endpoints on Blockstack Core, as well as the upcoming `/v2/prices/*`
169 endpoints.
170- Support for setting `blockstack.js` logLevels via
171 `config.logLevel`. Supports strings: `['debug', 'info', 'warn',
172 'error', 'none']` and defaults to `debug`. If you do not want
173 `blockstack.js` to print anything to `console.log`, use
174 `'none'`. Thanks @hstove.
175
176### Changed
177
178- Modified the transaction builders in `transactions.js` to accept a
179 new flow type `transactions.AmountType` for the price of a name or
180 namespace. This makes them forwards-compatible with the next stable
181 release of Blockstack Core.
182- Added inline documentation on the wire formats of all transactions.
183
184### Fixed
185
186- Update to proof URLs for instagram proofs. Thanks @cponeill.
187- Fixes to several safety checks. Thanks @jcnelson.
188- Fixed error handling in proof validation -- several errors which
189 would cause uncaught promise rejections now are handled correctly.
190- Improved error handling in authentication -- if a user tries to sign
191 in with an application is a different browser context, rather than
192 experiencing a 'Key must be less than curve order' error, the
193 authentication fails.