用于与Trezor硬件钱包通信的Python库
trezor的Python项目详细描述
蟒蛇树
用于与trezor通信的python库和命令行客户机 硬件钱包
有关详细信息,请参见https://trezor.io
安装
python trezor需要python 3.5或更高版本,以及libusb 1.0。最容易
安装方法是使用pip
。本指南的其余部分假设您
a workingpip
;如果没有,可以参考
指南
快速安装
在典型的linux/mac/bsd系统上,您已经拥有了所需的一切。 使用以下命令安装Trezor
pip3 install --upgrade setuptools pip3 install trezor
在Windows上,还需要安装 libusb和 适当的驱动程序。不幸的是,这是 主题大于此自述文件。
旧款Trezor One支持
如果您的Trezor One使用的是固件1.6.3或更早版本,则需要HIDAPI支持 让它被认可。这需要额外的软件包。
debian/ubuntu
在基于debian或ubuntu的系统上,您可以安装这些:
sudo apt-get install python3-dev python3-pip cython3 libusb-1.0-0-dev libudev-dev
窗口
在基于Windows的系统上,您可以安装这些程序(有关Choco的更多信息,请参阅this):
choco install vcbuildtools python3 protoc refreshenv pip3 install protobuf
安装trezor库时,需要指定
hidapi
:
pip3 install --upgrade setuptools pip3 install trezor[hidapi]
以太坊支持
以太坊需要额外的python包。而不是
pip3安装trezor
,指定pip3安装trezor[ethereum]
你可以把它和上面的结合起来,得到hidapi和ethereum 支持:
pip3 install trezor[ethereum,hidapi]
FreeBSD
在FreeBSD上,您可以安装软件包:
pkg install security/py-trezor
或通过端口生成:
cd /usr/ports/security/py-trezor
make install clean
从源头建设
有时您可能需要安装最新和最新的未发布版本 直接从Github。您首先需要一些先决条件:
sudo apt-get install protobuf-compiler protobuf-dev pip3 install protobuf
如果您只需要安装软件包,可以再次使用pip:
pip3 install git+https://github.com/trezor/python-trezor
如果要处理源,请制作本地克隆:
pip3 install --upgrade setuptools pip3 install trezor0
命令行客户端(trezorctl)
包含的trezorctl
python脚本可以执行各种任务,例如
更改trezor中的设置,签署事务,检索帐户
信息和地址。有关详细信息,请参阅子文件夹
示例和选项。
注意:对于 Debian拉伸 (并预装在Tails OS)。
python库
您可以使用这个python库与比特币trezor交互,并 在应用程序中使用它的功能。请参阅此处的示例 工具/子文件夹。
插脚输入
当你被要求的时候密码,你必须输入加密密码。跟随 显示在Trezor显示屏上的数字,并使用 数字键盘映射:
<表><广告>示例:您的PIN为1234,Trezor显示以下信息:
<表><广告>您必须输入:3795
贡献
python trezor从
trezor-common存储库。如果
你正在为Trezor开发新功能,你需要开始
那里。一旦您的更改被接受为trezor common
,您可以
针对此存储库的PR。别忘了用以下命令更新子模块:
pip3 install --upgrade setuptools pip3 install trezor1
然后,重新生成protobuf消息,通过运行:
pip3 install --upgrade setuptools pip3 install trezor2
为了获得对类似BTC的硬币的支持,这些步骤已经足够了,而且没有进一步的步骤了 必须更改库。
更改日志
此项目的所有显著更改都将记录在此文件中。
格式基于保持更改日志
目前,该项目没有遵守语义版本控制。在版本1.0中预期会发生变化。
0.11.4-2019-07-31
添加
- Trezorctl支持SLIP-39 Shamir备份
- 支持二进制链
0.11.3-2019-05-29
添加
- trezorctl现在可以发送erc20令牌
- Trezorctl USB Reset将在状态不一致的设备上执行USB Reset
- 为TT固件2.1.1添加的设置显示旋转命令
- EOS支持f 87
- Tezos:添加投票支持f 41
dict_to_proto
现在允许枚举值作为字符串
更改
- 最低固件版本提升至1.8.0和2.1.0
- 未提供UI对象时出现清除错误
- 生成的文件现在又是源tarball的一部分。这意味着不再需要protoc。
已修复
- trezorctl中的ethereum命令现在可以工作了
- 内存调试工具现在又可以工作了
删除
- tron和ontology支持被删除,直到trezor固件中存在实现
0.11.2-2019-02-27
添加
- 完全支持Bootloader 1.8.0和相关固件升级功能
- trezorctl:支持完全脱机签名json编码的事务数据
- trezorctl:dry run for firmware upgrade命令
- 客户端:新的方便功能
get_default_client
用于简单的脚本使用 - Dash:支持DIP-2特殊输入
- 以太坊:添加get_public_键方法
更改
- 带有BIP-143叉子ID(BCH,BTG)的硬币不需要预先发送。I>
- 设备恢复将恢复U2F计数器
- 卡达诺:将
网络
更改为协议魔术
- 设置环境变量时,测试可以交互运行
- protobuf:改进了
到'u dict
函数
已弃用
- trezorctl:使用
sign tx
进行交互式签名被视为不推荐使用
0.11.1-2018-12-28
已修复
- 使用trezor t在设备上输入密码短语时崩溃
- qt小部件应该只导入qtcore\349
0.11.0-2018-12-06
不兼容的更改
- 删除了对Python3.3和3.4的支持
- trezorclient的主要重构和ui处理。现在,实现者必须提供一个"ui"对象,而不是重写回调。
- protobuf类现在使用a
get_fields()
方法而不是fields
field\312 trezorclient
类上的所有方法现在都在单独的模块中,并以atrezorclient
实例作为参数- mixin类也被删除,您不应该再扩展trezorclient
trezorclientdebuglink
已移动到debuglink
模块- 更改了
trezorlib.btc.sign_tx的签名
的参数替换@field
decorator被@expect
添加
- Trezorlib现在有一个硬编码的检查,防止使用过时的固件版本
- Ripple支持
- Zencash支持287
- Cardano支持
- 本体论支持
- Tezos支持302
- Capricoin支持325
- Monero支持有限(只能获取地址/监视密钥,签名需要Monerowallet)
- 测试中对输入流的支持使控制复杂的ui工作流变得更容易\314
protobuf.dict_to_proto
可以从普通dict创建protobuf实例- 支持Trezord 2.0.25及更高版本中的智能方法
- 支持无籽设置
- trezorctl:固件处理得到了极大的改进\304,\308
- trezorctl:类似比特币的签名流更方便用户
tx_api
现在支持blockbook后端服务器
更改
- 更好地报告DebugLink预期的消息
- 将ED25519模块替换为更干净、优化的版本
- 当缺少依赖项时,进一步的传输重组使它们更加健壮 <鱼>鳕鱼ebase现在遵循黑色的代码样式。
- 在qt模块中,首先导入qt5
txapiInsight
只是txapi
device.reset
和device.recover
现在对所有参数都有合理的默认值- protobuf类不再是源发行版的一部分,必须在本地编译。
- 恒星:地址总是字符串
删除
将
方法替换为trezorclient
上的set-tx-apisign-tx
- txapi的缓存功能已移动到单独的测试支持类
- 恒星:删除了公钥方法
加密消息
和解密消息
操作消失
固定:
trezorclient
现在可以检测HID设备何时被卸下,以及在同一路径上插入另一个设备的时间- trezorctl现在可以与click 7.0一起工作,并认为"
/code>"和"
-
"在命令名中是相同的\314 - bash完成修复
- Stellar:xdr解析器中的几个错误已修复
0.10.2-2018-06-21
添加
stellar_get_address
和u public_key
函数支持show_display
参数- trezorctl:
stellar_get_address
和u public_key
用于各自功能的命令
删除
- trezorctl:
列表硬币
被删除,因为我们不再解析相关的protobuf字段 (而且新的Trezor固件不会发送它)\277
已修复
- 测试支持模块未包含在发行版中,因此依赖于已弃用的ckd\u public模块的代码将失败\280
0.10.1-2018-06-11
已修复
- 以前的版本无法在Windows上构建
0.10.0-2018-06-08
添加
- Lisk支持
- 明星支持\167,\268
- wanchain支持
- 支持"自动锁定延迟"功能
trezorclient
接受一个附加的参数state
允许重用先前输入的密码短语- USB传输在异常消息中提到UDEV规则
log.enable_debug_output
函数打开有线日志记录,而不必使用trezorclientverbose
- bip32路径现在支持
123h
以及123'
以指示硬化 - trezorctl:
-p
现在支持设备路径的前缀搜索或/python trezor/issues/226" rel="nofollow">226 - trezorctl:更智能地处理固件更新
更改
- 重新组织传输并移动到它们自己的
传输
子模块 - protobuf消息和硬币信息现在在构建时从
trezor common
存储库中重新生成 - 将
ed25519raw
重命名为\u ed25519
以表示其私有性 - 将
ed25519cosi
重命名为cosi
并扩展了其api - protobuf消息现在通过python的
日志记录
工具记录,而不是通过verbosewiremixin自定义打印
将client.format\u protobuf
移动到protobuf.format\u消息
tools.hash
被重命名为tools.btc_hash
coins
模块coins\u tx api
被重命名为tx\u api
。硬币slip44
被重命名为slip44
- 构造:更严格的薄片8检查
- 构建:分离要求以分离文件
- 测试:统一查找测试设备,同时考虑
trezor\u path
env变量。 - 测试:根据Trezor设备版本自动跳过适当标记的测试
- 测试:仅在使用
-v
运行时显示导线输出
- 测试:允许基于pytest.ini有选择地运行xfail
- 文档:用更清晰的安装说明更新了自述文件
- 文档:切换更改日志以保持更改日志格式
已弃用
ckd_public
仅在测试中维护。支持子模块并将其视为私有的
trezorclient.expand_path
被移到普通函数tools.parse_path
trezordevice
被弃用,取而代之的是传输。枚举设备和
传输。获取传输
工具中与xpub相关的处理计划删除
删除
- 大多数Python2兼容性结构都消失了\229
trezorclientverbose
和verbosewiremixin
被删除- 特定的
tx_api.tx api*
类被删除,以支持coins.tx_api
client.prime_derivation_flag
被删除,取而代之的是tools.hardend_flag
和tools.h_()
- 对以太坊库和hidapi的硬依赖性已更改为需要
明确指定。需要
trezor[hidapi]
或trezor[ethereum]
才能获取它们。
已修复
- WebUSB枚举返回Windows 10上的坏设备
签署TX
发送空地址字符串的操作\237- 以太坊签名格式错误
- protobuf层会错误地对有符号整数进行编码。
- python 3.4上的protobuf pretty printing中断
- trezorctl:windows上的矩阵恢复不允许退格\207
- aes_encfs_getpass.py:修复了python 3错误\169
0.9.1-2018-03-05
添加
- 对Trezor T型的适当支持
- 支持Monacoin
- 对trezorctl的改进:
- 添加功能和调试转储协议的漂亮打印(修复\199)
- 支持
trezor路径
环境变量以预选trezor设备。
删除
- 逐渐降低Python2的兼容性(Pypi包现在将标记为仅限Python3)