1个不稳定版本
0.2.1 | 2023年9月25日 |
---|
#144 in #ledger
用于 nanos_ui
2.5MB
57K SLoC
Ledger钱包SDK,用于Rust应用
允许使用默认配置在Rust中开发Ledger Nano应用。
包含
- 针对C SDK 2.0版本的低级预生成的绑定
- 一些常见的系统调用安全包装
- IO抽象
- 签名抽象
此SDK不完整,因为目前缺少包装,并且并非所有包装都有良好的Rust抽象,但已有两个应用使用它。
如果您想贡献,可以提交问题或甚至拉取请求,我们将检查我们能做什么。
支持的设备
Nano S | Nano X | Nano S Plus |
---|---|---|
✔️ | ✔️ | ✔️ |
用法
构建需要将 rust-src
添加到您的Rust安装中,以及Clang和arm-none-eabi-gcc。在Ubuntu上,可能还需要安装 gcc-multilib
。
使用rustc nightly版本是强制性的,因为需要一些不稳定的功能。
rustup默认nightly
rustup添加组件 rust-src
- 安装 Clang。
- 安装一个 ARM gcc工具链
如果您想使用您发行版的包安装ARM gcc工具链,以下命令应该可以工作
# On Debian and Ubuntu
sudo apt install clang gcc-arm-none-eabi gcc-multilib
# On Fedora or Red Hat Entreprise Linux
sudo dnf install clang arm-none-eabi-gcc arm-none-eabi-newlib
# On ArchLinux
sudo pacman -S clang arm-none-eabi-gcc arm-none-eabi-newlib
此SDK为Nano S、Nano X和Nano S+提供了三个 自定义目标文件。
为Nano S构建
cargo build --release -Z build-std=core --target=./nanos.json
为Nano X构建
cargo build --release -Z build-std=core --target=./nanox.json
为Nano S+构建
cargo build --release -Z build-std=core --target=./nanosplus.json
使用rustc < 1.54构建
在rustc 1.54之前构建应该会失败,错误信息为 error[E0635]: unknown feature const_fn_trait_bound
。
可以通过激活特定功能来解决此问题: cargo build --features pre1_54
贡献
确保您已遵循上面的安装步骤。为了使您的PR被接受,它必须通过CI,CI会执行以下检查
- 检查代码在nightly上是否可以构建
- 检查
clippy
是否不发出任何警告 - 检查您的代码是否符合
rustfmt
的格式(使用cargo fmt
)