如何创建web3钱包

我使用的是vue3+web3的方式来创建钱包的

首先我们要安装相关的一些插件:

import Web3 from 'web3'
//生成助记词的插件:
const bip39 = require('bip39')
const ethUtil = require('ethereumjs-util')


安装完成后就要开始了:

//1、生成助记词
let mnemonic = bip39.generateMnemonic();
//2.将助记词转成seed
let seed = await bip39.mnemonicToSeed(mnemonic, '');

// 3、通过种子生成BIP32主节点
const hdWallet = bip32.fromSeed(seed);

//4.派生一个子密钥对的BIP32导出路径
let key = hdWallet.derivePath("m/44'/60'/0'/0/0");

//5、生成钱包地址
let address = ethUtil.publicToAddress(key.publicKey, true).toString('hex');

//6、生成私钥
const rootPrivateKey = hdWallet.privateKey.toString('hex');

注意:

助记词是回复钱包和私钥的必备条件,一定要保存好,一旦丢失就找不回来啦

钱包交易也是需要私钥配合的,一定不要泄露

以上是钱包的创建,但是我们往往会对钱包再次的进行加密,设置一个属于我们的密码,这样也可以进一步的提升安全性:

1、首先是要设置我们的密码:
let psd = ‘自定义的密码’

2、这个时候就是web3js登场的时候了,我们要确定我们的钱包是放在哪个网络下面的:
let url = ‘交易使用的地址’;//这里提供一个bsc测试网络:https://data-seed-prebsc-1-s1.binance.org:8545/
3、获取当前网络下的web3对象:
let web3 = new Web3(new Web3.providers.HttpProvider(res.url));

4、生成keystore:privateKey就是上面的私钥
let keystore = web3.eth.accounts.encrypt(privateKey,psd);

我们通过keystore和密码的配合就能获取到钱包的私钥,因此私钥在创建后可以不用保存,即便丢失也可以通过助记词找到。

通过keystore获取私钥:
web3.eth.accounts.decrypt(keystore,psd)

钱包的整个创建流程就结束了,其实只要对web3稍微有点理解,还是很简单的。

posted @ 2023-10-07 12:01  骚年上天不?  阅读(636)  评论(0)    收藏  举报