#ledger #ledger-nano #devices #wallet #clang #applications #ui

nightly ledger_device_sdk

Ledger 设备 Rust SDK

35 个稳定版本

1.15.0 2024年8月23日
1.13.1 2024年7月31日
1.8.0 2024年3月26日
1.4.1 2023年12月20日
1.0.1 2023年11月24日

#159 in 魔法豆

Download history 281/week @ 2024-05-02 28/week @ 2024-05-09 129/week @ 2024-05-16 375/week @ 2024-05-23 384/week @ 2024-05-30 444/week @ 2024-06-06 482/week @ 2024-06-13 356/week @ 2024-06-20 81/week @ 2024-06-27 370/week @ 2024-07-04 196/week @ 2024-07-11 274/week @ 2024-07-18 771/week @ 2024-07-25 774/week @ 2024-08-01 435/week @ 2024-08-08 222/week @ 2024-08-15

每月2,220次下载
用于 ledger_device_ui_sdk

Apache-2.0

435KB
9K SLoC

Rust 7K SLoC // 0.0% comments C 1.5K SLoC // 0.0% comments GNU Style Assembly 36 SLoC Shell 26 SLoC // 0.2% comments

为 Rust 应用程序提供的 Ledger 钱包 SDK

允许使用默认配置在 Rust 中开发 Ledger 设备应用程序的库。

包含

  • 一些常见的系统调用安全包装
  • IO 抽象
  • 签名抽象
  • UI 库(Nano (S/SP/X) 应用程序的 ui 模块,Stax 和 Flex 应用程序的 nbgl 模块)

要了解更多关于使用 SDK 以及在 Ledger Live 应用程序商店发布应用程序所需的内容,请随时查看以下资源

支持的设备

Nano S Nano X Nano S Plus Stax Flex
✔️ ✔️ ✔️ ✔️ ✔️

使用

构建需要将 rust-src 添加到您的 Rust 安装中,以及 Clang 和 arm-none-eabi-gcc。在 Ubuntu 上,可能还需要 gcc-multilib

使用rustc夜间构建是强制性的,因为需要一些不稳定的功能。

如果您想使用您发行版的软件包安装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构建

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

为Stax构建

cargo build --release -Z build-std=core --target=./stax.json

为Flex构建

cargo build --release -Z build-std=core --target=./flex.json

使用rustc < 1.54构建

在rustc 1.54之前构建应该会失败,并显示以下错误:error[E0635]: 未知功能 const_fn_trait_bound

这可以通过激活一个特定的功能来解决:cargo build --features pre1_54

贡献

如果您想做出贡献,可以提交一个问题或甚至是拉取请求,我们将检查我们能做什么。

确保您已按照上述安装步骤进行。为了您的PR被接受,它必须通过CI,CI将执行以下检查

  • 检查代码是否在夜间构建
  • 检查clippy没有发出任何警告
  • 检查您的代码是否符合rustfmt的格式(使用cargo fmt

依赖项

~5–7.5MB
~116K SLoC