All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
At the moment, the project does not adhere to Semantic Versioning. That is expected to change with version 1.0.
0.11.0 - 2018-12-06
- 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
- 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
- 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
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
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
stellar_get_address
and_public_key
functions supportshow_display
parameter- trezorctl:
stellar_get_address
and_public_key
commands for the respective functionality
- trezorctl:
list_coins
is removed because we no longer parse the relevant protobuf field (and newer Trezor firmwares don't send it) #277
- 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
- previous release fails to build on Windows #274
0.10.0 - 2018-06-08
- 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
- 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
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
- 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.
- 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
- 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.
- gradually dropping Python 2 compatibility (pypi package will now be marked as Python 3 only)