mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-25 17:09:44 +00:00
1e6259a476
[skip_ci]
21 KiB
21 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.13.0 - Unreleased
Added
- Enabled session management via
EndSession
#1227 - Support for temporary or permanent
safety-checks
setting - Support for Output Descriptors export #1363
Changed
- protobuf is aware of
required
fields and default values btc.sign_tx()
accepts keyword arguments for transaction metadata #1266
Deprecated
- instantiating protobuf objects with positional arguments is deprecated
- values of required fields must be supplied at instantiation time. Omitting them is deprecated.
details
argument tobtc.sign_tx()
is deprecated. Use keyword arguments instead.
Fixed
- added missing dependency on
attrs
#1232 - fixed number imprecision in
build_tx.py
that could cause "invalid prevhash" errors
Removed
- dropped Python 3.5 support #810
0.12.2 - 2020-08-27
Added
trezorlib.toif
module (moved from internal) can encode and decode TOIF image formattrezorctl set homescreen
was 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-header
fromtrezorctl firmware-update
which did nothing #1210
0.12.1 - 2020-08-05
Added
trezorctl set safety-checks
controls the new "safety checks" feature. #1126trezorctl btc get-address
can 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 removedTrezorClient
argumentui
is now mandatory.state
argument was renamed tosession_id
.- UI callback
get_passphrase()
has a new argumentavailable_on_device
. - API for
cosi
module 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
-P
enforces entering passphrase on host. - support for "passphrase always on device" mode on model T
- new trezorctl command
get-session
and option-s
allows 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-bytes
can 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 list
can now show name, model and id of device
Changed
trezorlib.tx_api.json_to_tx
was reduced to only support Bitcoin fields, and moved totrezorlib.btc.from_json
.- API for
cosi
module was streamlined:verify_m_of_n
is nowverify
, the oldverify
isverify_combined
- internals of firmware parsing were reworked to support signing firmware headers
get_default_client
respectsTREZOR_PATH
environment variable- UI callback
get_passphrase
has an additional argumentavailable_on_device
, indicating that the connected Trezor is capable of on-device entry Transport.write
andread
method signatures changed to accept bytes instead of protobuf messages- trezorctl subcommands have a common
@with_client
decorator 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_api
was removedtrezorlib.coins
and coin data was removedtrezorlib.ckd_public
, which was deprecated in 0.10, was now removed.btc.sign_tx
will 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.CallException
was dropped, usetrezorlib.exceptions.TrezorFailure
instead
0.11.6 - 2019-12-30
Added
- support for get-and-increase FIDO counter operation
- support for setting wipe code
trezorctl device recover
supports--u2f-counter
option to set the FIDO counter to a custom value
Changed
trezorctl
command was reworked for ease of use and maintenance. Seetrezorctl --help
andOPTIONS.rst
for details. f#510- updated EOS transaction parser to match
cleos
indelegatebw
andundelegatebw
actions f#680 f#681 RecoveryDevice
does not set fields when doing dry-run recovery f#666
Fixed
- fixed "expand words" functionality in
trezorctl device recover
f#778
Removed
- trezorctl no longer interactively signs Bitcoin-like transactions, the only allowed
input format is JSON. See
docs/transaction-format.md
for 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--beta
switch enables downloading beta firmwares. By default, only stable firmware is used. f#411, f#420 - in
trezorctl firmware-update
, the new--bitcoin-only
switch enables downloading Bitcoin-only firmware - support for FIDO2 resident credential management
- support for SD-protect features
Changed
- package directory structure was changed:
src
subdirectory contains sources andtests
subdirectory contains tests, so that cwd is not cluttered trezorctl
script was moved into a moduletrezorlib.cli.trezorctl
and is launched through theentry_points
mechanism. This makes it usable on Windowspyblake2
is 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_session
the 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_proto
now 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
protoc
is 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_client
for 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
network
toprotocol_magic
- tests can run interactively when
INTERACT=1
environment variable is set - protobuf: improved
to_dict
function
Deprecated
- trezorctl: interactive signing with
sign-tx
is 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
TrezorClient
and UI handling. Implementers must now provide a "UI" object instead of overriding callbacks #307, #314 - protobuf classes now use a
get_fields()
method instead ofFIELDS
field #312 - all methods on
TrezorClient
class are now in separate modules and take aTrezorClient
instance as argument #276 - mixin classes are also removed, you are not supposed to extend
TrezorClient
anymore TrezorClientDebugLink
was moved todebuglink
module- changed signature of
trezorlib.btc.sign_tx
@field
decorator 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_proto
can 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_api
now 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
TxApiInsight
is justTxApi
device.reset
anddevice.recover
now 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_api
method onTrezorClient
is replaced by an argument forsign_tx
- caching functionality of
TxApi
was moved to a separate test-support class - Stellar: public key methods removed
EncryptMessage
andDecryptMessage
actions are gone
Fixed:
TrezorClient
can 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_address
and_public_key
functions supportshow_display
parameter- trezorctl:
stellar_get_address
and_public_key
commands for the respective functionality
Removed
- trezorctl:
list_coins
is 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_public
module 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
TrezorClient
takes an additional argumentstate
that allows reusing the previously entered passphrase #241- USB transports mention udev rules in exception messages #245
log.enable_debug_output
function turns on wire logging, instead of having to useTrezorClientVerbose
- BIP32 paths now support
123h
in addition to123'
to indicate hardening - trezorctl:
-p
now supports prefix search for device path #226 - trezorctl: smarter handling of firmware updates #242, #269
Changed
- reorganized transports and moved into their own
transport
submodule - protobuf messages and coins info is now regenerated at build time from the
trezor-common
repository #248 - renamed
ed25519raw
to_ed25519
to indicate its privateness - renamed
ed25519cosi
tocosi
and expanded its API - protobuf messages are now logged through Python's
logging
facility instead of custom printing throughVerboseWireMixin
client.format_protobuf
is moved toprotobuf.format_message
tools.Hash
is renamed totools.btc_hash
coins
modulecoins_txapi
is renamed totx_api
.coins_slip44
is renamed toslip44
.- build: stricter flake8 checks
- build: split requirements to separate files
- tests: unified finding test device, while respecting
TREZOR_PATH
env variable. - tests: auto-skip appropriately marked tests based on Trezor device version
- tests: only show wire output when run with
-v
- tests: allow running
xfail
ed tests selectively based onpytest.ini
- docs: updated README with clearer install instructions #185
- docs: switched changelog to Keep a Changelog format #94
Deprecated
ckd_public
is only maintained intests.support
submodule and considered privateTrezorClient.expand_path
is moved to plain functiontools.parse_path
TrezorDevice
is deprecated in favor oftransport.enumerate_devices
andtransport.get_transport
- XPUB-related handling in
tools
is slated for removal
Removed
- most Python 2 compatibility constructs are gone #229
TrezorClientVerbose
andVerboseWireMixin
is removed- specific
tx_api.TxApi*
classes removed in favor ofcoins.tx_api
client.PRIME_DERIVATION_FLAG
is removed in favor oftools.HARDENED_FLAG
andtools.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_tx
operation 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_PATH
environment variable to preselect a Trezor device.
Removed
- gradually dropping Python 2 compatibility (pypi package will now be marked as Python 3 only)