#ledger #ledger-nano #apdu #cryptocurrency

coins-ledger

Ledger Nano X/S 连接和通信管理库

21 个版本 (10 个破坏性版本)

0.12.0 2024年7月27日
0.10.1 2024年2月1日
0.9.2 2023年12月2日
0.9.1 2023年11月27日
0.1.0 2021年1月4日

#997魔法豆

Download history 6076/week @ 2024-04-17 7219/week @ 2024-04-24 6474/week @ 2024-05-01 4533/week @ 2024-05-08 5308/week @ 2024-05-15 4565/week @ 2024-05-22 3796/week @ 2024-05-29 4585/week @ 2024-06-05 5079/week @ 2024-06-12 6433/week @ 2024-06-19 4603/week @ 2024-06-26 4361/week @ 2024-07-03 4654/week @ 2024-07-10 5590/week @ 2024-07-17 5474/week @ 2024-07-24 6238/week @ 2024-07-31

每月下载量 22,779
用于 8 个 crate(直接使用 4 个)

MIT/Apache

73KB
797

coins-ledger

Rust 和 Ledger Nano S/X 设备之间的通信库

构建

目前不支持 Windows。

本地

  • 安装依赖项
    • macOS
      • TODO
      • 如果您知道,请提交问题。我没有 macbook :)
  • 使用本地传输构建
    • cargobuild

WASM

  • 安装 wasm-pack
  • 必须通过 --disable-default-features
  • 必须选择最多一个 browsernode 特性
  • 使用 node WASM 绑定构建到 @ledgerhq/hw-transport-node-hid
    • wasm-pack build--作用域 summa-tx--目标 nodejs-- --特性=node--no-default-特性
    • 运行环境必须能够导入 @ledgerhq/hw-transport-node-hid
  • 使用浏览器 WASM 绑定构建到 @ledgerhq/hw-transport-u2f
    • wasm-pack build--作用域 summa-tx--目标 bundler-- --特性=browser--no-default-特性
    • 运行环境必须能够导入 @ledgerhq/hw-transport-u2f

特性

nodebrowser 功能是互斥的。您必须指定其中一个,以及 --no-default-features 标志。

当为非 wasm 架构构建时,会编译本机 HID 传输。当通过 wasm-pack 构建 wasm 时,您必须指定您想要 node 还是 browser wasm 传输。

测试

  • 运行单元测试
    • $cargo test ----lib
  • 运行集成测试
    • 连接 Ledger Nano S 或 X 设备
    • 解锁设备
    • 在设备上打开以太坊应用
    • $cargo test

许可证说明

此存储库是从Zondax 的存储库在提交 7d40af96 处分叉的。他们的代码在此以 Apache 2 许可证条款复制。包含他们代码的文件在文件底部保留其原始 Apache 2 许可证说明。

Summa 的进一步工作可在 GNU LGPLv3 许可证下获得。

以下更改如下

  • 删除 bip44 软件包
  • 对所有其他软件包进行重大重构
  • 将软件包移动到单个软件包的模块
  • 重构 APDUErrorCodes
  • 重构 APDUCommand 以朝向 no_std 支持。它们现在持有 &'a [u8] 而不是向量
  • 重构 APDUAnswer 以朝向 no_std 支持并避免不必要的复制。现在它是一个围绕 &[u8] 的薄包装器
  • 将交换函数更改为接受可变缓冲区。调用者必须为响应包分配空间
  • wasm_bindgen 用于 JS ledger 传输的绑定
  • 基于传输类型的条件编译抽象
    • 如果不是 wasm32,则使用本机 HID
    • 如果为 wasm32,则使用浏览器或 node 功能标志
  • 分离集成测试
  • 删除打印日志

依赖关系

~0.4–4MB
~76K SLoC