mirror of
https://github.com/trezor/trezor-firmware.git
synced 2026-03-10 17:29:27 +01:00
20 KiB
20 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.12.2 - 2020-08-27
Added
trezorlib.toifmodule (moved from internal) can encode and decode TOIF image formattrezorctl set homescreenwas improved and extended to support PNG images for Trezor T
Changed
- trezorctl will correctly notify the user if the image decoding library is missing
Fixed
- fix exception in
trezorctl btc get-address#1179 - fix exception in
trezorctl lisk sign-message - fix exception in trezorctl commands that accept filenames #1196
- fix "Invalid homescreen" error when un-setting homescreen
Removed
- removed option
--skip-vendor-headerfromtrezorctl firmware-updatewhich did nothing #1210
0.12.1 - 2020-08-05
Added
trezorctl set safety-checkscontrols the new "safety checks" feature. #1126trezorctl btc get-addresscan create multisig addresses.- the following commands are now equivalent in trezorctl:
firmware-update,firmware-upgrade,update-firmware,upgrade-firmware - support for EXTERNAL input type #38, #1052
- support for ownership proofs
- support for pre-authorized CoinJoin transactions #37
- support for Cardano Shelley #948
Changed
- do not allow setting auto-lock delay unless PIN is configured
Fixed
- correctly calculate hashes for very small firmwares f#1082
- unified file arguments in trezorctl
TrezorClient.ping()does not crash when device is PIN-locked
0.12.0 - 2020-04-01
Incompatible changes
trezorlib.coins,trezorlib.tx_api, and the filecoins.json, were removedTrezorClientargumentuiis now mandatory.stateargument was renamed tosession_id.- UI callback
get_passphrase()has a new argumentavailable_on_device. - API for
cosimodule was changed - other changes may also introduce incompatibilities, please review the full list below
Added
- support for firmwares 1.9.0 and 2.3.0
- Model T now defaults to entering passphrase on device. New trezorctl option
-Penforces entering passphrase on host. - support for "passphrase always on device" mode on model T
- new trezorctl command
get-sessionand option-sallows entering passphrase once for multiple subsequent trezorctl operations - built-in functionality of UdpTransport to wait until an emulator comes up, and the
related command
trezorctl wait-for-emulator trezorctl debug send-bytescan send raw messages to the device f#116- when updating firmware, user is warned that the requested version does not match their device f#823
trezorctl listcan now show name, model and id of device
Changed
trezorlib.tx_api.json_to_txwas reduced to only support Bitcoin fields, and moved totrezorlib.btc.from_json.- API for
cosimodule was streamlined:verify_m_of_nis nowverify, the oldverifyisverify_combined - internals of firmware parsing were reworked to support signing firmware headers
get_default_clientrespectsTREZOR_PATHenvironment variable- UI callback
get_passphrasehas an additional argumentavailable_on_device, indicating that the connected Trezor is capable of on-device entry Transport.writeandreadmethod signatures changed to accept bytes instead of protobuf messages- trezorctl subcommands have a common
@with_clientdecorator that manages exception handling and connecting to device
Fixed
- trezorctl does not print empty line when there is no output
- trezorctl cleanly reports wire exceptions f#226
Removed
trezorlib.tx_apiwas removedtrezorlib.coinsand coin data was removedtrezorlib.ckd_public, which was deprecated in 0.10, was now removed.btc.sign_txwill not preload transaction data fromprev_txes, as usage with TxApi is being removed- PIN protection and passphrase protection for
ping()command was removed - compatibility no-op code from trezorlib 0.9 was removed from
trezorlib.client trezorlib.tools.CallExceptionwas dropped, usetrezorlib.exceptions.TrezorFailureinstead
0.11.6 - 2019-12-30
Added
- support for get-and-increase FIDO counter operation
- support for setting wipe code
trezorctl device recoversupports--u2f-counteroption to set the FIDO counter to a custom value
Changed
trezorctlcommand was reworked for ease of use and maintenance. Seetrezorctl --helpandOPTIONS.rstfor details. f#510- updated EOS transaction parser to match
cleosindelegatebwandundelegatebwactions f#680 f#681 RecoveryDevicedoes not set fields when doing dry-run recovery f#666
Fixed
- fixed "expand words" functionality in
trezorctl device recoverf#778
Removed
- trezorctl no longer interactively signs Bitcoin-like transactions, the only allowed
input format is JSON. See
docs/transaction-format.mdfor details. - support for "load device by xprv" was removed from firmware and trezorlib
0.11.5 - 2019-09-26
Added
- trezorctl can dump raw protobuf bytes in debug output f#117
- trezorctl shows a warning when activating Shamir Backup if the device does not support it f#445
- warnings are emitted when encountering unknown value for a protobuf enum f#363
- debug messages show enum value names instead of raw numbers
- support for packed repeated encoding in the protobuf decoder
- in
trezorctl firmware-update, the new--betaswitch enables downloading beta firmwares. By default, only stable firmware is used. f#411, f#420 - in
trezorctl firmware-update, the new--bitcoin-onlyswitch enables downloading Bitcoin-only firmware - support for FIDO2 resident credential management
- support for SD-protect features
Changed
- package directory structure was changed:
srcsubdirectory contains sources andtestssubdirectory contains tests, so that cwd is not cluttered trezorctlscript was moved into a moduletrezorlib.cli.trezorctland is launched through theentry_pointsmechanism. This makes it usable on Windowspyblake2is no longer required on Python 3.6 and up- input flows can only be used in with-block (only relevant for unit tests)
- if not specified, trezorctl will set label to "SLIP-0014" in SLIP-0014 mode
- in
clear_sessionthe client also forgets the passphrase state for TT f#525
Fixed
- trezorctl will properly check if a firmware is present on a new T1 f#224
Removed
- device test suite was moved out of trezor package
0.11.4 - 2019-07-31
Added
- trezorctl support for SLIP-39 Shamir Backup
- support for Binance Chain
0.11.3 - 2019-05-29
Added
- trezorctl can now send ERC20 tokens
- trezorctl usb-reset will perform USB reset on devices in inconsistent state
- set-display-rotation command added for TT firmware 2.1.1
- EOS support f#87
- Tezos: add voting support f#41
dict_to_protonow allows enum values as strings
Changed
- Minimum firmware versions bumped to 1.8.0 and 2.1.0
- Cleaner errors when UI object is not supplied
- Generated files are now part of the source tarball again. That means that
protocis no longer required.
Fixed
- Ethereum commands in trezorctl now work
- Memory debugging tools now work again
Removed
- Tron and Ontology support removed until implementations exist in Trezor firmware
0.11.2 - 2019-02-27
Added
- full support for bootloader 1.8.0 and relevant firmware upgrade functionality
- trezorctl: support fully offline signing JSON-encoded transaction data
- trezorctl: dry-run for firmware upgrade command
- client: new convenience function
get_default_clientfor simple script usage - Dash: support DIP-2 special inputs #351
- Ethereum: add get_public_key methods
Changed
- coins with BIP-143 fork id (BCH, BTG) won't require prev_tx #352
- device recovery will restore U2F counter
- Cardano: change
networktoprotocol_magic - tests can run interactively when
INTERACT=1environment variable is set - protobuf: improved
to_dictfunction
Deprecated
- trezorctl: interactive signing with
sign-txis considered deprecated
0.11.1 - 2018-12-28
Fixed
- crash when entering passphrase on device with Trezor T
- Qt widgets should only import QtCore #349
0.11.0 - 2018-12-06
Incompatible changes
- removed support for Python 3.3 and 3.4
- major refactor of
TrezorClientand UI handling. Implementers must now provide a "UI" object instead of overriding callbacks #307, #314 - protobuf classes now use a
get_fields()method instead ofFIELDSfield #312 - all methods on
TrezorClientclass are now in separate modules and take aTrezorClientinstance as argument #276 - mixin classes are also removed, you are not supposed to extend
TrezorClientanymore TrezorClientDebugLinkwas moved todebuglinkmodule- changed signature of
trezorlib.btc.sign_tx @fielddecorator was replaced by an argument to@expect
Added
- trezorlib now has a hardcoded check preventing use of outdated firmware versions #283
- Ripple support #286
- Zencash support #287
- Cardano support #300
- Ontology support #301
- Tezos support #302
- Capricoin support #325
- limited Monero support (can only get address/watch key, monerowallet is required for signing)
- support for input flow in tests makes it easier to control complex UI workflows #314
protobuf.dict_to_protocan create a protobuf instance from a plain dict- support for smarter methods in trezord 2.0.25 and up
- support for seedless setup
- trezorctl: firmware handling is greatly improved #304, #308
- trezorctl: Bitcoin-like signing flow is more user-friendly
tx_apinow supports Blockbook backend servers
Changed
- better reporting for debuglink expected messages
- replaced Ed25519 module with a cleaner, optimized version
- further reorganization of transports makes them more robust when dependencies are missing
- codebase now follows Black code style
- in Qt modules, Qt5 is imported first #315
TxApiInsightis justTxApidevice.resetanddevice.recovernow have reasonable defaults for all arguments- protobuf classes are no longer part of the source distribution and must be compiled locally #284
- Stellar: addresses are always strings
Removed
set_tx_apimethod onTrezorClientis replaced by an argument forsign_tx- caching functionality of
TxApiwas moved to a separate test-support class - Stellar: public key methods removed
EncryptMessageandDecryptMessageactions are gone
Fixed:
TrezorClientcan now detect when a HID device is removed and a different one is plugged in on the same path- trezorctl now works with Click 7.0 and considers "
_" and "-" as same in command names #314 - bash completion fixed
- Stellar: several bugs in the XDR parser were fixed
0.10.2 - 2018-06-21
Added
stellar_get_addressand_public_keyfunctions supportshow_displayparameter- trezorctl:
stellar_get_addressand_public_keycommands for the respective functionality
Removed
- trezorctl:
list_coinsis removed because we no longer parse the relevant protobuf field (and newer Trezor firmwares don't send it) #277
Fixed
- test support module was not included in the release, so code relying on the deprecated
ckd_publicmodule would fail #280
0.10.1 - 2018-06-11
Fixed
- previous release fails to build on Windows #274
0.10.0 - 2018-06-08
Added
- Lisk support #197
- Stellar support #167, #268
- Wanchain support #230
- support for "auto lock delay" feature
TrezorClienttakes an additional argumentstatethat allows reusing the previously entered passphrase #241- USB transports mention udev rules in exception messages #245
log.enable_debug_outputfunction turns on wire logging, instead of having to useTrezorClientVerbose- BIP32 paths now support
123hin addition to123'to indicate hardening - trezorctl:
-pnow supports prefix search for device path #226 - trezorctl: smarter handling of firmware updates #242, #269
Changed
- reorganized transports and moved into their own
transportsubmodule - protobuf messages and coins info is now regenerated at build time from the
trezor-commonrepository #248 - renamed
ed25519rawto_ed25519to indicate its privateness - renamed
ed25519cositocosiand expanded its API - protobuf messages are now logged through Python's
loggingfacility instead of custom printing throughVerboseWireMixin client.format_protobufis moved toprotobuf.format_messagetools.Hashis renamed totools.btc_hashcoinsmodulecoins_txapiis renamed totx_api.coins_slip44is renamed toslip44.- build: stricter flake8 checks
- build: split requirements to separate files
- tests: unified finding test device, while respecting
TREZOR_PATHenv variable. - tests: auto-skip appropriately marked tests based on Trezor device version
- tests: only show wire output when run with
-v - tests: allow running
xfailed tests selectively based onpytest.ini - docs: updated README with clearer install instructions #185
- docs: switched changelog to Keep a Changelog format #94
Deprecated
ckd_publicis only maintained intests.supportsubmodule and considered privateTrezorClient.expand_pathis moved to plain functiontools.parse_pathTrezorDeviceis deprecated in favor oftransport.enumerate_devicesandtransport.get_transport- XPUB-related handling in
toolsis slated for removal
Removed
- most Python 2 compatibility constructs are gone #229
TrezorClientVerboseandVerboseWireMixinis removed- specific
tx_api.TxApi*classes removed in favor ofcoins.tx_api client.PRIME_DERIVATION_FLAGis removed in favor oftools.HARDENED_FLAGandtools.H_()- hard dependency on Ethereum libraries and HIDAPI is changed into extras that need to be
specified explicitly. Require
trezor[hidapi]ortrezor[ethereum]to get them.
Fixed
- WebUSB enumeration returning bad devices on Windows 10 #223
sign_txoperation sending empty address string #237- Wrongly formatted Ethereum signatures #236
- protobuf layer would wrongly encode signed integers #249, #250
- protobuf pretty-printing broken on Python 3.4 #256
- trezorctl: Matrix recovery on Windows wouldn't allow backspace #207
- aes_encfs_getpass.py: fixed Python 3 bug #169
0.9.1 - 2018-03-05
Added
- proper support for Trezor model T
- support for Monacoin
- improvements to
trezorctl:- add pretty-printing of features and protobuf debug dumps (fixes #199)
- support
TREZOR_PATHenvironment variable to preselect a Trezor device.
Removed
- gradually dropping Python 2 compatibility (pypi package will now be marked as Python 3 only)