Skip to content

wabicai/ledger-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ledger DMK Browser Demo

一个基于浏览器的演示项目,展示如何使用Ledger的Device Management Kit (DMK)与Ledger硬件钱包交互。

功能特点

此演示实现了以下功能:

  1. 设备连接:连接可用的Ledger设备
  2. 地址获取:从连接的设备获取以太坊地址
  3. 签名:使用以太坊应用程序签署消息
  4. 密码短语流程:演示使用密码短语功能

先决条件

  • Node.js (v14或更高版本)
  • Ledger设备 (Nano S, Nano X, 或Stax)
  • 在Ledger设备上安装的以太坊应用
  • 支持WebHID的浏览器 (Chrome, Edge, 或Opera)

安装

  1. 克隆此仓库
  2. 安装依赖项:
npm install
#
yarn install

运行演示

  1. 构建并启动开发服务器:
npm start
#
yarn start
  1. 演示将在默认浏览器中打开
  2. 将Ledger设备连接到计算机
  3. 解锁设备
  4. 点击演示中的"Connect Device"按钮
  5. 按照屏幕上的指示进行每项操作

重要提示

  • 此演示需要支持WebHID的浏览器 (Chrome, Edge, 或Opera)
  • 对于密码短语流程,您需要在设备上启用密码短语功能
  • 在执行以太坊操作之前,确保Ledger设备已解锁且以太坊应用已打开
  • 演示使用标准以太坊派生路径 44'/60'/0'/0/0 作为第一个账户

技术实现

设备连接流程

此演示遵循Ledger官方文档中描述的连接流程:

  1. 设备发现:使用dmk.startDiscovering()方法获取可用设备列表

    • 返回一个Observable,每当扫描到设备时发出一个DiscoveredDevice对象
    • 这些对象包含设备型号的信息
  2. 连接:使用dmk.connect({ device })方法连接到发现的设备

    • 返回一个会话ID(sessionId),用于后续所有与设备的交互
  3. 状态监控:使用dmk.getDeviceSessionState({ sessionId })监控设备状态

    • 监控设备连接状态、锁定状态
    • 获取电池电量、当前运行的应用程序等信息
  4. 断开连接:使用dmk.disconnect({ sessionId })断开设备连接

以太坊操作

  1. 获取地址:使用Ethereum Signer Kit从设备派生地址
  2. 消息签名:使用Ethereum Signer Kit通过设备签署消息

密码短语工作流

  1. 安全通道:使用DMK的安全通道功能(dmk.startSecureChannel({ device })
  2. 密码短语检查:检查设备是否启用了密码短语功能
  3. 密码短语请求:请求设备提示输入密码短语
  4. 获取派生地址:获取使用密码短语派生的地址

参考资料

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published