forked from LedgerHQ/app-boilerplate-rust
-
Notifications
You must be signed in to change notification settings - Fork 0
Difference with the C version app‐conflux
Pana edited this page Nov 14, 2024
·
7 revisions
本项目是使用 Rust 开发的全新 Conflux Ledger Device App, 相较于 C 版本的 除了支持 Conflux 1559 升级之外, 也增加了对 Ledger Stax, Flex 设备的支持.
需要注意的是新版 App 的 APDU 数据传输格式相较于之前版本有一点变化.
主要区别在于 P1, P2 的值含义发生了变化, P1 表示数据 chunk 的 index, 最大值为 03, P2 用于表示数据是否传输完成, 80
表示还有更多数据, 00
表示传输结束.
另外 bip32 请求数据和交易 rlp 编码数据要分开传输, 第一个 chunk 只用来发送 bip32 数据, 交易数据使用后边的 chunk 传输. 单个 chunk 支持传输的最大数据大小为 255
具体格式文档和例子, 可参考这里
返回数据的格式保持一致
get_app_info 命令返回数据的第一个 byte 为 flag 数据, 之前只用了两位 b000000YX
现在新增一位 b00000NYX
其中 N 用来与原版 app 进行区分, 1 表示为新版 app, 0 为原版.
get_app_info, get_public_key 命令的传参和数据返回格式均与原版保持一致
- 本 App APDU Command API: https://github.com/Conflux-Chain/app-conflux/blob/develop/docs/COMMANDS.md
- 原始(C)版本 APDU Command API: https://github.com/Conflux-Chain/ledger-app-conflux/blob/master/doc/COMMANDS.md