主页 > imtoken钱包下载安卓最新版本 > 比特币钱包开发:通过助记词导入钱包和导出钱包助记词
比特币钱包开发:通过助记词导入钱包和导出钱包助记词
目标 获取钱包列表 按助记词导入钱包 导出钱包助记词
目标
获取钱包列表
助记词导入钱包
导出钱包助记词
前言
上一章介绍了创建钱包比特币钱包助记词有多少个,本章将介绍通过助记词创建钱包,也称为通过助记词恢复钱包或通过助记词导入钱包。 首先介绍一下如何展示我的钱包。
1.获取钱包列表
我们将创建好的钱包文件存放在static/wallet_file文件夹中,然后遍历该文件夹判断子文件名是否以钱包文件的“.dat”结尾得到我的钱包,然后截掉后缀。 钱包名称,实现如下。
单击此处添加图片说明
输出如下
C4EC5431-7AF0-4F0C-8C61-E2090A389A59
stringWithSubstrEnd()方法实现了判断字符串是否以myUtils包中的某个字符串结尾的功能。
2.通过助记词导入钱包
在创建新钱包时,我们使用seedFromRandomWithMnemonic()方法通过随机助记词创建种子,然后我们在创建钱包时指定助记词通过助记词导入钱包,这就需要使用到另一个方法seedFromMnemonic (),其API定义如下:
单击此处添加图片说明
的
根据API的定义,需要的参数有如下两个。 请注意,它没有回调。
BIP39:字符串,助记词。
opts:可选参数,是一个对象,包含单词breaks如下:
opts.network:string,钱包连接的网络类型,支持官方网络和测试网络,分别表示为:livenet、testnet。
opts.passphrase:助记词的密码,种子是通过助记词+密码生成的,所以密码不同种子就不同,导致账号无法找回。
opts.account:Number,帐号,默认为0。
opts.derivationStrategy:String,使用的BIP协议,默认为BIP44。
因此,通过助记词导入钱包的代码实现如下:
单击此处添加图片说明
输出如下:
F6CA929D-C18F-440E-B25B-E2EC53AE3992
使用的助记词是“eternal list thank chaos trick paper sniff ridge make govern invest abandon"密码是"lixu1234qwer”,生成的地址为“mm16s7xsf8Wjwxhprc6YzLW9gVncqZNGBR”,路径是“m/0/0”,公钥是“031cf3493c5fcb4eabdfaa4191a02cc30429539ea6b80f5590bc4a8b6222f0d3ba” ,这些数据与我们在第2章验证的数据是一致的。
3.导出钱包助记词
由于可以通过导入助记词来恢复钱包,所以也可以导出钱包的助记词。 这个数据在上一章我们创建钱包后就已经获取到了,但是需要先解锁才能获取,也就是通过import()方法解锁。
单击此处添加图片说明
输出如下:
947B884D-53FF-4C0D-AFF3-F0B7B2F13087
可以得到“wallet1”钱包的助记词是“same subway develop function fancy library sand and rain hamster ship floor define”。
4.完整的源代码
1.控制器/wallet.js
编辑controllers文件夹下的wallet.js文件,实现获取钱包列表、通过助记词导入钱包、导出钱包助记词等功能。
单击此处添加图片说明
的
2.控制器/web.js
在controllers文件夹下新建web.js文件,后端实现返回各个前端页面。
单击此处添加图片说明
的
3.路由器/router.js
绑定获取钱包列表、通过助记词导入钱包、导出钱包助记词到路由接口。
单击此处添加图片说明
的
4.静态/js/wallet.js
文件加载完成后比特币钱包助记词有多少个,处理获取钱包列表、通过助记词导入钱包、导出钱包助记词等网络请求。
单击此处添加图片说明
的
5.views/钱包.html
前端显示的钱包列表页面。
点击此处添加图片说明 五、项目运行效果
B2539C4C-AD17-4805-8670-61218498F309
项目源码Github地址