实现Ethereum钱包备份及导入功能
in 区块链 with 0 comment

实现Ethereum钱包备份及导入功能

in 区块链 with 0 comment

前言

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

run

备份钱包

copay

copay

copay

copay

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

导出钱包

# 假设钱包已经创建成功,命名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格式代码

导入钱包

copay

* 假设变量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钱包备份及导入的简单实现总结,希望能帮到需要的人呀,当然还有很多不足的地方需要指正,今天到此为止,溜了溜了!~

run

Responses