1 | # Changelog
|
2 | All notable changes to the project will be documented in this file.
|
3 |
|
4 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
5 | and 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
|
12 | done through AppConfig objects. This change removes the library's dependency on browser
|
13 | environments.
|
14 | - List of functions moved: redirectToSignIn(), isUserSignedIn(), isSignInPending(),
|
15 | handlePendingSignIn(), loadUserData(), signUserOut(), getFile(), putFile(),
|
16 | encryptContent(), 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
|
22 | is 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
|
29 | most major web browsers and operating systems with both the native browser installed and
|
30 | not installed.
|
31 | - NOTE: If you're using this version of blockstack.js with an old version of the native
|
32 | browser, the app will (1) open an auth handler in the native browser and (2) also redirect
|
33 | the 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
|
40 | the case if there have been any token revokations. This new logic will catch the first failed write,
|
41 | construct (and cache) a new Gaia token, and then attempt the write again. This allows tokens
|
42 | to 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,
|
49 | and all keys and values included in this argument will be included in the `payload` of
|
50 | an `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.
|