比特币钱包开发:通过助记词导入钱包与导出钱包助记
目标
获取钱包列表
通过助记符导入钱包
导出钱包助记符
前言
上一章的内容介绍了创建钱包。本章将介绍通过助记法创建钱包,我们首先要介绍的是如何显示我的钱包。
一、获取钱包列表
我们已经将创建的钱包文件存储在了static/wallet_file文件夹中,所以通过遍历文件夹,判断子文件名是否以“”结尾,就可以获取我的钱包。dat ”,然后去掉后缀得到钱包名。实现如下蓑衣网小编2022。
点击此处添加标题?下面的c4ec 5431-7af 0-4f0c-8c 61-e 2090 a 389 a 59stringwithsubstrnd()方法实现了在myUtils包中判断一个字符串是否以某个字符串结尾的功能。
二。通过助记符导入钱包
当我们创建一个新的钱包时,我们调用方法seedFromRandomWithMnemonic()通过随机助记符生成种子,所以我们可以在创建钱包时通过指定助记符来通过助记符导入钱包,这需要另一个方法seedFromMnemonic(),它的API定义如下:[
根据API的定义,有两个必需的参数。请注意,它没有回调。
BIP39:字符串,助记符。opts:可选参数,为对象,包含以下断字:
opts.network: string,钱包连接的网络类型,支持正式网络和测试网络,分别表示为livenet和testnet。
opts.passphrase:助记符的密码,种子是由助记符密码一起生成的,所以密码不同时种子也不一样,导致无法找回账号。
opts.account: Number,账号,默认为0。
opts.derivation策略:string,使用的BIP协议,默认为BIP44。
所以通过助记符导入钱包的代码是这样实现的:
点击这里添加图片的标题文字输出如下:
f6ca 929d-C18F-440 e-B25B-e2ec 53 AE 3992[使用的助记符是“永恒之榜感谢混沌绝招纸嗅岭让政府投资放弃”,密码是“lixu1234qwer”,生成的地址是“mm 16 S7 xs F8 wjwxprc 692路径为“m/0/0”,公钥为“031 cf 3493 C5 fc 4 eab dfaa 4191 a 02 cc 30429539 ea 6b 80 f 5590 BC 4 A8 b 6222 f 0d 3 ba”。这些数据与我们在第二章中验证的数据一致。
三。导出钱包助记符既然我们可以通过导入助记符来恢复钱包,我们也可以导出钱包助记符。这些数据在我们创建钱包之后已经可以获取上一章的助记符了,但是需要解锁才能获取,也就是通过import()方法解锁。
点击此处添加标题
?输出如下:947 b84d-53FF-4C0D-af F3-f 0 b 7 b 2 f 13087
钱包“wallet1”的助记符是“同地铁开发趣味花式库沙雨仓鼠船地板定义”。四。完整源代码 1。controllers/wallet.js编辑controllers文件夹下的wallet.js文件,实现获取钱包列表、通过助记符导入钱包、导出钱包助记符的功能。点击此处添加标题
?
2。controllers/web.js
在controllers文件夹下新建一个web.js文件,后端实现返回每个前端页面。
点击此处添加标题?3。router/router.js
绑定了获取钱包列表、通过助记符导入钱包、将钱包助记符导出到路由的接口。
点击此处添加标题?4。static/js/wallet.js
文档加载后,处理获取钱包列表、通过助记符导入钱包、导出钱包助记符等网络请求。
点击此处添加标题?蓑衣网小编2022 5。在前端显示的Views/wallet.html
Wallet列表页面。
点击此处添加标题?五、项目运行效果b 2539 C4 C-AD17-4805-8670-61218498 f 309
项目来源Github地址版权声明:博客中文章版权归博主所有,未经授权禁止转载。[ 未经授权,禁止复制和改编。转载请注明出处!