007 以太坊钱包开发-助记词、私钥、地址

创建 Ethereum HD wallet

使用的 JavaScript 套件包含:

bip39:实作 BIP39,随机产生新的 mnemonic code,并可以将其转成 binary 的 seed。

ethereumjs-wallet:产生和管理公私钥,我使用其中的 hdkey 子套件来创建 HD Wallet。

ethereumjs-util:集合许多 Ethereum 需要的运算功能。

安装依赖

$ mkdir accountsWallet
$ cd accountsWallet
$ npm init
$ npm install bip39 ethereumjs-wallet ethereumjs-util --save
$ vi index.js

具体代码:

var bip39 = require('bip39')
var hdkey = require('ethereumjs-wallet/hdkey')
var util = require('ethereumjs-util')

// 生成助记词
var mnemonic = bip39.generateMnemonic()

console.log(mnemonic)

var seed = bip39.mnemonicToSeed(mnemonic)
var hdWallet = hdkey.fromMasterSeed(seed)


var key1 = hdWallet.derivePath("m/44'/60'/0'/0/0")
console.log("私钥:"+util.bufferToHex(key1._hdkey._privateKey))


var address1 = util.pubToAddress(key1._hdkey._publicKey, true)
console.log("地址:"+util.bufferToHex(address1))

address1 = util.toChecksumAddress(address1.toString('hex'))
console.log("Encoding Address 地址:"+ address1)

运行代码

$ node index.js

# 运行结果
awesome prosper attitude above book response resemble man liberty tuna width extra
私钥:0xeef393f053a9e3a05a7a04deb5d49862ba9c043a0cb0d4a931817be6bd933435
地址:0x4ccc6fab6f01ada8c155ae8ec12e5487aee5a972
Encoding Address 地址:0x4CCC6FaB6f01ADa8C155aE8EC12E5487aeE5a972

验证

可以用 Mnemonic Code Converter 验证结果

参考资料

https://www.jianshu.com/p/54a2b14dfdf2

源码下载

https://github.com/didianV5/web3EthWallet/tree/master/accountsWallet

关注我

公众号

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值