14个版本 (8个重大变更)

0.9.0 2024年6月4日
0.8.0 2024年3月24日
0.7.0 2023年7月18日
0.6.0 2023年2月24日
0.1.2 2020年3月15日

#9 in #hardware-wallet

Download history 212/week @ 2024-05-06 59/week @ 2024-05-13 92/week @ 2024-05-20 70/week @ 2024-05-27 394/week @ 2024-06-03 502/week @ 2024-06-10 215/week @ 2024-06-17 165/week @ 2024-06-24 137/week @ 2024-07-01 112/week @ 2024-07-08 30/week @ 2024-07-15 106/week @ 2024-07-22 273/week @ 2024-07-29 105/week @ 2024-08-05 193/week @ 2024-08-12 214/week @ 2024-08-19

813 每月下载量
用于 5 个crate(4个直接使用)

MIT 许可证

49KB
1K SLoC

rust-hwi

Rust封装了Bitcoin硬件钱包接口库。

Crate Info API Docs Rustc Version 1.63+ Chat on Discord

此库内部使用PyO3调用HWI的函数。它不是在原生Rust中重新实现HWI。

最低系统要求版本(MSRV)

此项目的最低系统要求版本是 1.63.0

先决条件

需要Python 3。每个设备的库和udev规则也必须安装。一些库需要安装

对于Ubuntu/Debian

sudo apt install libusb-1.0-0-dev libudev-dev python3-dev

对于Centos

sudo yum -y install python3-devel libusbx-devel systemd-devel

对于macOS

brew install libusb

安装

  • 克隆仓库
git clone https://github.com/bitcoindevkit/rust-hwi.git && cd rust-hwi
  • 创建虚拟环境
virtualenv -p python3 venv
source venv/bin/activate
  • 使用pip安装所有依赖项
pip install -r requirements.txt

用法

use bitcoin::Network;
use bitcoin::bip32::DerivationPath;
use hwi::error::Error;
use hwi::HWIClient;
use std::str::FromStr;

fn main() -> Result<(), Error> {
    let mut devices = HWIClient::enumerate()?;
    if devices.is_empty() {
        panic!("No devices found!");
    }
    let first_device = devices.remove(0)?;
    let client = HWIClient::get_client(&first_device, true, Network::Bitcoin.into())?;
    let derivation_path = DerivationPath::from_str("m/44'/1'/0'/0/0").unwrap();
    let s = client.sign_message("I love BDK wallet", &derivation_path)?;
    println!("{:?}", s.signature);
    Ok(())
}

测试

要运行测试,您需要连接一个硬件钱包。如果您没有用于测试的硬件钱包,您可以尝试

不要在测试时使用资金设备!

使用没有资金的测试设备,或者使用模拟器。

您可以使用cargo test运行测试。

依赖项

~11–18MB
~205K SLoC