UniApp 以太坊bite DAN生成助记词并创建账户(一)

有幸参与钱包项目,此文仅写思路和一些简略的方法,作为个人开发或迭代钱包项目的参考

需要使用三个包bip39ethereumjs-wallet/hdkeyethereumjs-util,

安装和引入还有介绍参考另一篇博文记录:

bip39 ethereumjs-wallet ethereumjs-util 的API 和引入 介绍_百撕可乐的博客-CSDN博客

第一次进入 生成助记词

在有设置好密码的条件下,生成助记词,并放在缓存内

const mnemonic = bip39.generateMnemonic();
uni.setStorageSync('mnemonic', mnemonic);

一般情况下助记词常用的是12个单词,每两个单词之间有空格分隔开,so...

在需要验证正确的时候,可以根据长度来判断验证

this.mnemonic_list = mnemonic.split(" ");
if(this.mnemonic_list.length!=12){
    uni.showModal({
        title: 'Error',
        content: "找不到啦",
        showCancel:false
    });
    return;
}
//一些其余操作
uni.navigateTo({
    url: '跳转到你想去的页面'
});
//将助记词转成seedBuffer 
let seedBuffer = bip39.mnemonicToSeedSync(this.mnemonic,"");

//通过hdkey将seedBuffer生成HDWallet
let hdWallet = hdkey.fromMasterSeed(seedBuffer);

//生成钱包中在m/44'/60'/0'/0/0路径的keypair
let key = hdWallet.derivePath("m/44'/60'/0'/0/0");

//从keypair中获取私钥
let privateKey = util.bufferToHex(key._hdkey._privateKey);

//从keypair中获取公钥
let publicKey = util.bufferToHex(key._hdkey._publicKey);

//使用keypair中的公钥生成地址
let address = util.pubToAddress(key._hdkey._publicKey, true);
address = util.toChecksumAddress("0x"+address.toString('hex'));


* 返回:1.address: address 
 *     2.privateKey: privateKey
 *     3.publicKey: publicKey
 *     4.keystore: keystore

let user=[{"privateKey":privateKey,"publicKey":publicKey,"address":address,"message": 'Success'}];

创建一个 web3 的实例,设置一个 provider,关于web3可看:

web3.js基础知识简单汇总_百撕可乐的博客-CSDN博客

web3.js中英文文档地址_百撕可乐的博客-CSDN博客

//此处地址可设为全局后再调用,演示暂时写死
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));

使用指定的私钥创建一个账户对象

web3.eth.accounts.privateKeyToAccount(privateKey);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
涉及内容:注意,学习此视频必须有一定基础的同学区块链相关知识、钱包相关知识、p2p相关知识、uniapp相关知识    01前言    02成果展示    03前言区块链概念和六层模型介绍    04翻译一个带币的js简单例子原理介绍    05区块链springboot工程搭建和区块相关实现    06区块链中加密算法相关介绍以及实现    07钱包相关实体类介绍    08redis数据库等配置和工具类的介绍    09区块链相关实体类介绍    10挖矿相关实体类和POW相关的介绍    11 p2p 点对点 server和client代码    12 p2p 原理的简单介绍    13 节点钱包相关启动实现    14 web控制层逻辑基础代码    15 web功能的整体介绍    16 web钱包功能-创建钱包账户的完整功能实现    17 web钱包功能-获取挖矿钱包信息和根据钱包地址获取信息    18 web钱包功能-获取当前节点所有钱包    19 全节点钱包轻钱包中心化钱包的概念    20 p2p三个节点的相关配置并启动    21 p2p 节点添加相关流程    22 p2p 节点列表相关实现    23 区块相关挖矿与挖矿奖励等讲解    24 区块链相关的查询操作    25 交易转账相关逻辑    26 三台机器节点运行 uniapp开发前准备    27 uniapp首页和我的页面实现    28 uniapp 节点钱包和节点钱包列表展示    29 uniapp添加节点,节点列表挖矿区块链查询等    30 uniapp我的钱包转账查询交易等    31 课程总结以及代码资料等相关说明

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值