怎么用web3dart为flutter应用生成以太坊地址-亚博电竞手机版

怎么用web3dart为flutter应用生成以太坊地址

本篇内容介绍了“怎么用web3dart为flutter应用生成以太坊地址”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1、web3dart简介

作为一个新的框架,适合flutter的以太坊开发包并没有太多选择,web3dart算是相对完善一些的dart实现,它包含了json rpc封装、离线签名、abi编解码等重要的特性,其目标是提供dart版的web3.js,能够适应绝大多数flutter应用对接以太坊区块链的需求。

web3dart的安装方法很简单,首先在项目的pubspec.yaml中添加web3dart依赖项。例如:

name:hubwiz_tutorialdependencies:web3dart:git:git://github.com/simolus3/web3dart.git

然后执行如下命令更新项目依赖:

~/hubwiz_tutorial$pubget

如果希望快速掌握flutter / dart应用对接以太坊区块链的方法,推荐 汇智网的在线互动教程:

  • flutter以太坊开发详解

2、示例代码:用web3dart生成以太坊地址

生成以太坊地址是绝大多数希望支持以太坊区块链的flutter应用所需要的功能特性。 web3dart开发包使得这一过程相当简单明了:web3dart的crypto库提供了三个api函数, 分别用于生成私钥、从私钥推导出公钥、以及从公钥推导出以太坊地址:

首先我们引入必要的库:

import'dart:math';//randomimport'dart:typed_data';//uint8listimport'package:web3dart/crypto.dart';

step 1# 创建随机私钥

为此我们需要利用math库中的安全随机数发生器,然后调用crypto库中的generatenewprivatekey()生成一个随机私钥:

randomrng=random.secure();//安全随机数发生器bigintprivkey=generatenewprivatekey(rng);//生成新的私钥

step 2# 从私钥推导出公钥

直接调用crypto库中privatekeytopublic()函数,即可从指定的私钥推导出公钥:

uint8listpubkey=privatekeytopublic(privkey);//从私钥推导出公钥print('publickey=>${bytestohex(pubkey)}');//显示其16进制字符串表示

bytestohex()是crypto库提供的一个辅助api,用于将字节数组(uint8list)转换为16进制表示的字符串。

step 3# 从公钥推导出地址

直接调用crypto库中publickeytoaddress()方法,从指定的公钥码流推导出地址码流:

uint8listaddress=publickeytoaddress(pubkey);//从公钥推导出地址stringaddresshex=bytestohex(address,//地址字节数组include0x:true,//包含0x前缀forcepadlength:40//补齐到40字节);print('address=>${addresshex}');//显示地址

“怎么用web3dart为flutter应用生成以太坊地址”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恰卡编程网网站,小编将为大家输出更多高质量的实用文章!

展开全文
内容来源于互联网和用户投稿,文章中一旦含有亚博电竞手机版的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系亚博电竞手机版删除

最新文章

网站地图