Releases: greatwolf/KKClient
v6.7.6
Changelog:
Coin Related Support
- Disabled BitcoinSV support.1
- Added Monacoin support.
- Updated transaction explorer url for Dash and Namecoin. See 95fbe3f.
- Updated blockbook indexers for Bitcoin, Bitcoin Cash, Litecoin, Dogecoin, Qtum, Komodo, Vertcoin and Zcash.
UI/Codebase Improvements
- Moved coin profiles out of monolithic 'background.js' into 'coins.js' so it's easier to work with.
- Made panel transition more natural between '/lifeboat' and '/walletlist' panel during PIN request at startup.
- 'ButtonRequest' panel now goes back to previous send panel with active 'Preparing Transaction' overlay after confirming button press on KeepKey. This is to ensure the current 'Processed' status is visible afterwards. See 1e70739.
- Improved alignment of info displayed in 'About KeepKey' panel.
- Made address column expandable/collapsible for transactions involving a lot of addresses in transaction history.
- Made calls to coingecko endpoint more efficient when querying and calculating fiat equivalent value for wallets. 09ccf12 for details.
- Improved error handling for bad blockbook endpoint responses. Notification is displayed to the user incase any blockbook api requests fail. See d5eed7a and 3cda292.
- Adjusted gas fee level one tier up for 'Priority' and 'Normal' since etherchain.org's gas estimate is a bit too conservative.
- Added limited support for bip49
p2wpkh-sh
and bip84p2wpkh
. It is now possible to spend segwit utxos when sending funds. For any given segwit-supported coin account the HD pathsm/49/*/*
andm/84/*/*
are also checked for any spendable utxos and the values are included in the displayed spendable balance. However the transaction history won't be present for those utxos. See 4f1ec4b for more details. - Select 'medium' as default fee level for Bitcoin and Ethereum.
- Removed remaining leftover code so single wallet is handled the same way as multiple wallets on '/walletlist' panel.
Bugfixes
- Fixed
vin
handling in 'BlockbookDataTranslator.transactionSummary' so it can handlecoinbase
edge case. See 207ae0e. - Reworked signature action estimation for progress when sending funds. See 338f3b3.
- Fixed a problem in 'CachedHttpClient' where bad or rejected request stays in cache indefinitely.
- Proxy 'Background.js' no longer sends stray 'EthereumAddress' messages to UI 'popup.js' during startup or refresh.
- Invoking 'KeepKey.deleteAccount' from console now properly removes wallet from the wallet list. See 6a1e390.
- Fixed up ERC20 token alias for proper coingecko price lookup.
- Fixed an issue in
GetWalletNodes
action where sometimesp.reason
doesn't contain a string. - Fixed an issue where fiat spot price doesn't requery for wallet subaccounts on refresh. See 5327e85.
- Fixed error 'nonce too low' when sending Ethereum transaction. See 26cbc88.
- Fixed
TransactionCacheRegistry
issue when clearingAccountListManager
. See e9bd549.
This release packages the latest official shapeshift firmware v7.5.0. The following dependencies were also updated:
- AngularJS
v1.7.2
→v1.8.2
- Lodash
v4.17.10
→v4.17.15
- Added AngularJS map files to avoid
ERR_FILE_NOT_FOUND
console warnings. - Removed 'openpgp.js' since it's unused.
-
There aren't any functioning BSV insight or blockbook indexers that doesn't
error 1020
. Feel free to uncomment and re-enable if you find a block indexer that works. ↩
v6.7.5
Changes in this release:
- Some Dash particular improvements:
- Reduced threshold for what's considered dust when sending Dash.
- Added lightning icon + InstantSend field in the wallet panel showing how much of the balance is under the effect of InstantSend.
- Added lightning icon next to details column for transactions secured with InstantSend on the transaction history page.
- Better InstantSend support and handling. Dash pending transactions that are InstantSend secured are now treated the same as transactions with a confirmation.
- Fixed
responseFilter
regex to not ignore the exponent part of the number when processing '/addrs/*/txs' endpoint response from insight indexer. - When using blockbook indexer 'Receive Address' now increments to the next address automatically after seeing a pending incoming transaction for current address.
- Updated bootloader profile so KKClient properly recognizes v2.1.x bootloaders.
- Added klever.io as another potential blockbook indexing provider.
- Enabling/Disabling Passphrase option now restarts KKClient.
- Added passphrase mismatch detection for session when BIP39 Passphrase is enabled. KKClient now bails out with
Conflicting BIP39 Passphrase
message if the passphrase entered at the start does not match the one entered later on. Since passphrases acts as an extra word for the seedphrase, entering 'wrong' passphrase will result in incorrect addresses with non-existing balances. See cd02f74. - Added visual green checkmark indicator for 'Receive Address' and 'View XPub' panel. This indicator appears after user confirms via button press on KeepKey's on-screen display.
- Got rid of an extra call to KeepKey device when requesting 'Receive Address' or 'Viewing XPub Address'.
- Fixed some ordering issues in how transaction history's displayed when using insight indexer or etherscan.io. See 93aa36e and 940d3a2.
- Refactored 'ApiThrottler' module to better handle throttling and rate-limiting. See 532a4a2.
- Added proper busy overlay when doing dryrun test of recovery seed. See. 0631e47.
- Added Namecoin support.
- Fixed some cleanup issues when disconnecting KeepKey.
- When making outgoing transactions for utxo-style coins, randomize the index position of the change output. It won't thwart chainalysis but will make it slightly harder.
- Updated Zcash
BranchId
to latest 'NU5'. - Replaced defunct gasnow.org with api compatible etherchain.org for Ethereum gas estimation.
- Added ERC20 FOX token support.
- Paginated transaction history panel.
This release packages the latest official shapeshift firmware v7.4.0 for convenience. Upgrading KeepKey through KKClient is possible by putting device into bootloader mode with KKClient open. Upgrade is optional though and can be skipped by clicking the lower right corner of the firmware update panel when it comes up.
v6.6.5
Changes in this release:
- Updated BitcoinGold icon from http://cryptoicons.co
- Coins that use insight-api indexers now show the sum of pending incoming and outgoing transactions for that coin's wallet.
aka. Similar to current behavior of coins that use blockbook indexers. - BSV coins from BCH fork are now checked and displayed under BCH wallet.
- Refactored and fixed up regex pattern used for checking base58 address in 'send panel'.
- Fixed some bugs in insight-api handling code. Coins using those indexers should bump to next address now after receiving funds w/o needing to restart client.
- Added SmartCash and Firo support.
- Updated btc fee service to use blkhub.net for better range of fee rates. (btc-fees.net had some dns lookup issues)
- Added mempool.space to list of btc fee services as suggested from issue #5 in case anyone wants to use it.
- Optimized wallet loading further by avoiding extra api call for balance.
- Throttle calls made by
BlockbookApiHelper
to help mitigate potential rate-limit by indexing server.
Also retry the request in case of 503 response. - Extracted out core bchaddr encode/decode functions from 'bitcore-lib-cash' library and integrated into 'bitcore-lib' module.
This is to allow seemless support between base58 and cashaddr format into one library. This replaces
'https://github.com/ealmansi/bchaddrjs' minus all the bells and whistles in favor of a smaller size. - 'About KeepKey' panel now shows detailed information about the currently connected KeepKey like bootloader version,
firmware version, their respective hashes, whether its initialized, model etc. That panel is now accessible as long as the
device is connected. - KKClient should now work with any KeepKey firmware having major version 7.
- KKClient should now show an error instead of a stuck wallet loading when an unknown firmware version is encountered.
v6.6.4
Changes in this release:
- Implemented viewable BIP44 XPub Address for HD derived wallets.
- Fixed some transition issues with '/lifeboat' and '/label' panel.
- Added 'About KeepKey' to '/lifeboat' panel.
- Added v6.7.0 firmware support in KKClient.
- Added 'Enable BIP39 Passphrase' as an option directly from seed selection panel during KeepKey initialization.
- Fixed pin retry issue for 'ChangeLabel'.
- Added Reddcoin support.
- Fixed stuck wallet loading issue after initializing/recovering KeepKey.
- Added Pivx support.
Note about Pivx and Reddcoin support: Both Pivx and Reddcoin requires firmware support in order to work which currently isn't the case at the time of this release. If official support is important to you feel free to pester Shapeshift into merging these PR's to upstream: keepkey/keepkey-firmware#250, keepkey/keepkey-firmware#251
Alternatively, if those wanting to try out support without waiting on Shapeshift see my custom firmware fork for KeepKey. Bootloader v2.0.0 is required for this. Since this firmware is not signed by Shapeshift, loading it onto KeepKey will trigger a device wipe. Make sure to have a seed backup before doing this.
v6.6.3
This release contains many major changes and improves. The most notable is the separation of insight-api and blockbook
handling into their own respective modules. The old implementation made only minimal changes to the original code
enough to get blockbook working in place of insight-api. Since InsightApiHelper
made a lot of data-heavy queries from
the indexer, this inefficiency carried over to blockbook as well. With this module separation insight-api type indexers are
supported again. More importantly, re-implementation of BlockbookApiHelper
makes the most efficient use of the available
RESTful endpoints reducing traffic per wallet loaded by a significant amount.
The second important change is migration over to Trezor's Ethereum blockbook. This removes the last dependency on coinquery.com
which was recently down giving 503 responses. It's still possible to use Etherscan.io but Ethereum blockbook indexer should be
preferred since it doesn't have the annoyingly low 5 api/call rate limit. Ethereum now has a gas fee selector as well as using gasnow.org
for gas price estimation.
The last notable change is PIN/Passphrase transitions. Getting all the panels to transition correctly in case of a PIN trigger turned out to be a trickier problem to solve. This is the third attempt at rectifying the problem. The core of the solution is to store the PIN trigger state somewhere and any panel that needs to know if it's transitioning from a PIN panel can just query this state.
Changes in this release:
- Removed Bitcoin Cash fork warning in sending panel. Replay risk is minimal at this point.
- Improved transitional behavior between PIN/Passphrase and other UI panels. See f29c825.
- Fixed PIN cancel rubberbanding issue with 'ReceiveAddress'.
- Rewrote large parts of
BlockbookApiHelper
making more efficient use of available endpoints.
This refactor significantly reduces api traffic, reduces strain on indexing servers and improves wallet load times.
See 9d0faa0 for implementation details. - Updated some of the currency icons with right sizing and style.
- Updated Zcash
BranchId
to 'Canopy'. Signed transactions must have the latest branch id to be accepted by the network. - Reorganized 'config.json' file into 'config.js'. Moved api token stuff out of 'background.js' into 'apitokens.js'.
Edit 'apitokens.js' instead of 'background.js' if you need to configure and use a custom api key. - Added gasnow.org for better Ethereum gas estimation.
- Implemented trezor blockbook api support for Ethereum. This removes any last remnant of dependency on coinquery.com.
Note it's still possible to use etherscan.io for blockchain data purposes but not recommended due to its low 5 api/call rate limit. - Added fee selector for Ethereum.
- Refreshing balance inside a coin wallet panel now only reloads balance for that coin instead of all coins in wallet list.
- Added Bitcoin TESTNET support. This allows for test sending&receiving of wallet without risking actual funds.
- Improved look and readability of transaction history window.
- Combined 'FeeService' stuff into 'coin-type' module for btc-style coins.
This completes the refactor started with c287046. - Fixed up CSS for send panel so error mesages don't shift UI elements.
- Added Syscoin support. This still needs firmware level support.
If support of this coin is important to you feel free to pester KeepKey to merge this PR in.
v6.6.2
Changes in this release:
- Added Fujicoin support.
- Started refactoring codebase to make adding btc-style coins easier by
consolidating changes to one place. - Some minor fixes to Bitcoin Gold support.
- Updated Bitcoin Gold currency icon to right proportion.
- Lower transaction
MIN_FEE
rate from 10000 to 1000 sats/KB. - Fixed an issue where fiat value wasn't fetching properly from coingecko for BTG.
- Fixed
window.localStorage
error in console log by enablingchrome.storage.local
.
This also opens up the possibility of storing wallet metadata locally on the machine instead
of saving it to the cloud. NYI at the moment though; will probably do so in the future. - Show sigAction progress in the 'Preparing Transaction' overlay when
signing a transaction. - Extend and show fiat value up to 4 decimal places in case total value for a coin is < 1 cent.
- Fixed fee calculation for Dogecoin.
- Catch any response errors and relay it back to the UI when sending and broadcasting
a transaction. In case the transaction fails for whatever reason the user is at least notified
with the returned server error. - Added v6.6.0 firmware support in KKClient.
v6.6.1
Changes in this release:
- Added Vertcoin support.
- Switched to 'btc-fee.net' for more aggressive BTC fee estimation to avoid overpaying.
- Renamed miner fee selection labels from 'Fast', 'Medium', 'Slow' to 'Priority', 'Normal', 'Economy' respectively.
- Added extra fee option 'Frugal' for BTC transactions which always uses 1 sat/byte miner fee. Be careful when using this;
Only use this if you know the network isn't congested otherwise the transaction may not confirm for a long time. - Fixed console.log of host<-->device message consistency.
- Fixed device connectivity issue where sometimes KeepKey doesn't get detected when plugged in.
- Fixed style wrapping issue for long digit balances.
- Made 'Receive Address' more robust in handling PIN timeouts.
- Reworked the PIN retry mechanism so it works correctly in other contexts besides device initialization.
- Expose 'EndSession' method for 'DeviceBridge'. This is handy for allowing user to directly clear PIN caching
from dev console withKeepKey.DeviceBridge.endSession()
. - Implemented BIP39 mnemonic length selection during KeepKey initialization. User can now select between
12, 18 or 24 words when generating mnemonic phrase on KeepKey. - Allow PIN input from keyboard numpad when setting and confirming new PIN.
- Removed Shapeshift advert overlay during loading.
- Added atomicwallet blockbook indexers for some of the coins.
- UI visual fix: Grey out PIN input button until at least 1 digit is entered. This sidesteps an error with 0 length PIN input.
v6.6.0
Changes in this release:
- Added Qtum and Groestlcoin support.
- Updated Zcash consensus branch id to 'Heartwood' for transaction signing.
- Fixed back button for 'Test Recovery Sentence' screen.
- Added v6.5.1 firmware support in KKClient.
- Added support for user defined Blockcypher api token for metadata storage.
The master api token from KeepKey is defunc and no longer works. - Added support for Google Firebaseio as an alternative metadata store.
ℹ️ Important Note:
The original KeepKey Client stores non-critical wallet metadata on api.blockcypher.com. This is how the extension
keeps track of wallets created and knows what to display after startup. This is non-critical since it can always be
recreated or recomputed from the seed on the device.
As of Oct. 2020, the blockcypher api token: d9a5e85023faa87914a191f6a741a2c4
supply by the original client is
defunct and no longer works. Starting with v6.6.0 release, users can specify which cloud store service to use for
saving their wallet metadata: either api.blockcypher.com or google's firebaseio realtime database service. Create an
api token with either and then copy+paste it to the top of Background.js
file and save. When you first start the
extension, the wallet list will be blank except for btc even if you have other altcoins in your wallet. Just recreate any
missing wallets with 'Add Account'.
For convenience, this release has METADATA_API_TOKEN
and FIREBASE_ID
preset to use Google Firebaseio. Users
are encouraged to setup and use their api token for this if they wish to have control over their metadata.
v6.5.4
v6.5.3
Changes in this release:
- Added Zcash support. Currently only transparent addresses starting with 't1' have been tested to work.
- Fixed some transitional issues with 'Receive Address' and PIN timeouts.
- Increased drop-down menu height in 'Add Accounts' for better coin list visibility.
- Fixed 'address_type' field handling when generating base58 addresses with prefix.
- Fixed inaccurate network fee display issue in 'transaction details'.