子贤的独立博客 子贤的独立博客
  • 首页
  • 编程
  • 视频
    • 哔哩哔哩
    • 斗鱼TV
    • VLOG
  • 社交媒体
    • 新浪微博
  • 专题
首页 › 编程 › 详谈以太坊钱包实现导入功能

详谈以太坊钱包实现导入功能

James
6年前编程阅读 1,376

前言

上次总结了使用助记词创建钱包的摸索笔记,这次说说一个ETH钱包的一些别的功能实现.其实很多事情ethers.js都已经封装好了,我们只要明白流程逻辑再使用就行了,Let’s Go!

详谈以太坊钱包实现导入功能-子贤的独立博客

备份钱包

  • 查看比特币钱包copay的实现是先让用户先验证口令(前提如果设置了口令的话):
详谈以太坊钱包实现导入功能-子贤的独立博客
  • 口令验证成功后,会展示钱包的助记词,这时会提醒用户需要记下此助记词:
详谈以太坊钱包实现导入功能-子贤的独立博客
  • 确定记下后,会让你重新输入之前的助记词,顺序都不能乱:
详谈以太坊钱包实现导入功能-子贤的独立博客
  • 成功输入助记词后,将会提示备份成功:
详谈以太坊钱包实现导入功能-子贤的独立博客

至此就成功备份了钱包,但是,我认为这个备份实际是用户要做的事,没错!就是记下展示的助记词,因为凭借助记词(在没有设置口令的前提)就能直接访问用户的钱包,甚至随便转账操作,当然如果设置了口令的话,2者缺一不可,所以在用户备份前,助记词应该是加密存储下来,等待备份展示,备份成功就销毁了,再也不能在应用里找到此钱包的助记词了.

导出钱包

  • 验证钱包口令,口令正确才能进入导出功能.
  • 导出eth钱包非常简单,其实就是导出一段json格式的代码而已,ethers.js已经封装了一个方法让我们方便快速的调用导出钱包。
//假设钱包已经创建成功,命名wallet

let password = "james";
//设置一个导出传输密码(导入时需要验证)

function callback(percent) {
    console.log("Encrypting: " + parseInt(percent * 100) + "% complete");
}
//定义一个callback函数,接收变量percent为导出百分比.

//为了更直观分开写其实可以与下面合并
let encryptPromise = wallet.encrypt(password, callback);
//使用钱包方法encrypt加密钱包输出json,需传入密码和回调函数,返回加密后的json格式代码.

encryptPromise.then(function(json) {
    console.log(json);
});
//调用promise,成功返回json格式代码
  • 此时可以选择让用户复制或者保存二维码图片完成导出功能,需要注意的是导出时设置的密码须牢记,因为导入时要用到此密码.

导入钱包

  • 导入钱包可以使用助记词+口令(如果有的话)导入,或者使用json代码导入,以下是copay的导入功能:
详谈以太坊钱包实现导入功能-子贤的独立博客
  • ETH钱包导入很简单,如果是助记词找回的话,将助记词和口令(如果有)转为种子,再重新生成钱包就是了,代码参考我之前的一篇文章,json代码可以如下
//假设变量data为导出json数据
let json = JSON.stringify(data);
//把复制的json代码转化为JSON格式

let password = "james";
//导出时的传输密码

Wallet.fromEncryptedWallet(json,password).then(function(wallet) {
    console.log("Address: " + wallet.address);
});
//调用eth钱包方法fromEncryptedWallet传入json代码和密码,成功返回钱包

总结

以上是分享ETH钱包备份及导入的简单实现总结,希望能帮到需要的人呀,当然还有很多不足的地方需要指正,今天到此为止,溜了溜了!~

ETH
赞赏 赞(0)
实现以太坊钱包备份及导入功能
上一篇
虚拟货币钱包Copay运行Note
下一篇
再想想
暂无评论

Recent Posts

  • React Native 多语言国际化
  • React Native 设置文件路径别名
  • 不要笑大挑战 | 两个憨憨 | 达达倾情出演
  • 黄埔古港 | “哥哥影你啊” | 随剪短片
  • 参观省博物馆 | 展品片段随剪

Recent Comments

  1. SuperMan发表在React Native 多语言国际化
React Native 多语言国际化
5年前
7,376 1 10
React Native 设置文件路径别名
5年前
3,244 0 1
解决charles模拟localhost请求无效问题
6年前
3,586 0 0
Cordova构建IOS应用适配iPhone X
6年前
2,598 0 0
  • 0
  • 0
Copyright © 2019-2025 子贤的独立博客. Designed by nicetheme.
粤ICP备19162060号
  • 首页
  • 编程
  • 视频
    • 哔哩哔哩
    • 斗鱼TV
    • VLOG
  • 社交媒体
    • 新浪微博
  • 专题
# Vlog # # Cordova # # ETH # # Css # # Android #
James
32
文章
0
评论
35
喜欢