EVM Suite
Ethereum 与 EVM 兼容链的 Air-Gap 流程使用 eth-sign-request 表达签名请求,并通过 eth-signature 返回设备签名结果。它可覆盖交易签名、EIP-712 结构化数据和普通消息签名等场景。
账户设置
如需在离线流程中管理账户,可以通过 CryptoHDKey 获取扩展公钥和来源路径,再由应用侧派生地址。
支持的操作
| 操作 | DataType | 说明 |
|---|---|---|
| EIP-1559 交易 | typedTransaction (4) | 类型化交易签名 |
| Legacy 交易 | transaction (1) | 传统 RLP 交易签名 |
| EIP-712 TypedData | typedData (2) | 结构化数据签名 |
| Personal Message | personalMessage (3) | 普通消息签名 |
步骤
- 使用 EthSignRequest 构建签名请求。
- 将请求编码为 UR,并显示为动画二维码。
- UKey Wallet 扫描、展示摘要并等待用户确认。
- 使用 EthSignature 解码设备响应。
- 将签名填回交易或消息流程,并按业务需要广播。
快例子
import { KeystoneEthereumSDK } from "@keystonehq/keystone-sdk";
const eth = new KeystoneEthereumSDK();
// 先构造签名请求对象
const ur = eth.generateSignRequest({
requestId: "uuid-string",
signData: unsignedTxHex, // 这里传不含 0x 的十六进制字符串
dataType: 4, // EIP-1559 type
path: "m/44'/60'/0'/0/0",
xfp: "12345678",
chainId: 1,
origin: "sample-client",
});
// 再编码成二维码帧,展示给设备扫描