JS生成以太坊地址\助记词\公私钥 Ethereum Adress/Private/Public Key

1,879 阅读1分钟
  • mkdir walletDemo && cd walletDemo //创建一个项目目录,cd

  • npm init //初始化npm项目

  • yarn add bip39 ethereum-hdwallet //安装依赖

  • node //执行

    const bip39 = require('bip39') //导入bip39模块
    const mnemonic = bip39.generateMnemonic()//生成随机助记词
    console.log(mnemonic)
    console.log(bip39.generateMnemonic())
    
  • 完整Demo 

    //js获取公私钥、地址
    //运行:node ethAddress.js
    
    //引入依赖
    const bip39 = require('bip39')
    const HDWallet = require('ethereum-hdwallet')
    
    //生成助记词
    const mnemonic = bip39.generateMnemonic(128,null,bip39.wordlists.chiness_simplified)console.log('助记词' + mnemonic);
    
    //通过随机助记词生成公私钥、地址
    async function getAdress(mnemonic) {    
        const seed = await bip39.mnemonicToSeed(mnemonic)//根据助记词生成seed    
        const hdwallet = HDWallet.fromSeed(seed)//通过seed获取hdWallet    
        const key = hdwallet.derive("m/44' /60' /0/0")//源于,得自。设置地址路径    
        console.log("PrivateKey = " + key.getPrivateKey().toString('hex'))//私钥    
        console.log("PublicKey = " + key.getPublicKey().toString('hex'))//公钥    
        const EthAddress = '0x' + key.getAddress().toString('hex')//地址    
        console.log("Eth Address = " + EthAddress)}//通过同一个seed获取多个地址
        async function getAdressFromSameSeed(mnemonic) {    
        const seed = await bip39.mnemonicToSeed(mnemonic)//根据助记词生成seed    
        const hdwallet = HDWallet.fromSeed(seed)//通过seed获取hdWallet  
      
        for(var i = 0; i < 10; i++) {        
            const key = hdwallet.derive("m/44' /60' /0/0" + i)//源于,得自。设置地址路径        
            console.log("========地址" + i + "===========")        
            console.log("PrivateKey = " + key.getPrivateKey().toString('hex'))//私钥        
            console.log("PublicKey = " + key.getPublicKey().toString('hex'))//公钥        
            const EthAddress = '0x' + key.getAddress().toString('hex')//地址        
            console.log("Eth Address = " + EthAddress)    
        }    
    }
    getAdress(mnemonic)getAdressFromSameSeed(mnemonic)
    

本文来自 @催棉大师的视频