以太坊 助記詞提取 賬戶 公鑰 私鑰 最新實現可用。


step 1 裝依賴的包(npm/yarn 自己選一個):

yarn add bip39 ethereumjs-wallet ethereumjs-util 

npm install bip39 ethereumjs-wallet ethereumjs-util

step 2 演示代碼:

const bip39 = require('bip39')
const {hdkey} = require('ethereumjs-wallet')
const util = require('ethereumjs-util')

//1 生成助記詞 ;1.1 和 1.2 自己按需。

// 1.1 生成助記詞 ;這里用生成的.
// let mnemonic = bip39.generateMnemonic() 

// 1.2 生成助記詞 ;這里用寫死的.
let mnemonic = "hold scale hybrid tank dilemma bullet ship language attitude rug tennis host"
console.log(mnemonic)

//2.將助記詞轉成seed
getSeed = async ()=>{
    let seed = await bip39.mnemonicToSeed(mnemonic)
    console.log("seed:" + util.bufferToHex(seed))
    return seed
}
//3.提取私鑰,公鑰,賬戶
obtainAccount = async ()=>{
    let seed = await getSeed()
    //3.通過hdkey將seed生成HD Wallet
    let hdWallet = await hdkey.fromMasterSeed(seed)

    for (let i = 0; i < 10; i++) {
        //4.生成錢包中在m/44'/60'/0'/0/i路徑的keypair
        let key = await hdWallet.derivePath("m/44'/60'/0'/0/" + i)
        //5.從keypair中獲取私鑰
        console.log("私鑰:" + util.bufferToHex(key._hdkey._privateKey))
        //6.從keypair中獲取公鑰
        console.log("公鑰:" + util.bufferToHex(key._hdkey._publicKey))
        //7.使用keypair中的公鑰生成地址
        let address = await util.pubToAddress(key._hdkey._publicKey, true)
        //編碼地址
        console.log('account',i+1,'0x'+address.toString('hex'))

//分割線        console.log("__________________________________________________________")
    }
}
obtainAccount()

step 3 運行結果截圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM