Flutter / Dart生成以太坊地址

栏目: IOS · Android · 发布时间: 6年前

内容简介:Flutter是采用Dart语言的跨平台应用开发框架,目前已经 支持ios、安卓和web等多个平台。本文将介绍如何在Flutter应用中 生成以太坊地址,如果你要开发一个手机钱包,或者要对接以太坊 区块链,相信这篇文章会对你所帮助。作为一个新的框架,适合Flutter的以太坊开发包并没有太多选择,web3dart的安装方法很简单,首先在项目的pubspec.yaml中添加web3dart依赖项。例如:

Flutter是采用Dart语言的跨平台应用开发框架,目前已经 支持ios、安卓和web等多个平台。本文将介绍如何在Flutter应用中 生成以太坊地址,如果你要开发一个手机钱包,或者要对接以太坊 区块链,相信这篇文章会对你所帮助。

1、web3dart简介

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

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

name: hubwiz_tutorial
dependencies:
  web3dart: 
    git: git://github.com/simolus3/web3dart.git

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

~/hubwiz_tutorial$ pub get

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

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

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

Flutter / Dart生成以太坊地址

首先我们引入必要的库:

import 'dart:math';                                     // Random
import 'dart:typed_data';                               // Uint8List     
import 'package:web3dart/crypto.dart';

STEP 1# 创建随机私钥

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

Random rng = Random.secure();                            //安全随机数发生器
BigInt privKey = generateNewPrivateKey(rng);             //生成新的私钥

STEP 2# 从私钥推导出公钥

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

Uint8List pubKey = privateKeyToPublic(privKey);          //从私钥推导出公钥      
print('public Key => ${bytesToHex(pubKey)}');            //显示其16进制字符串表示

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

STEP 3# 从公钥推导出地址

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

Uint8List address = publicKeyToAddress(pubKey);          //从公钥推导出地址
String addressHex = bytesToHex(
                      address,                           //地址字节数组
                      include0x:true,                    //包含0x前缀
                      forcePadLength:40                  //补齐到40字节
                    );
print('address => ${addressHex}');                       //显示地址

汇智网原创,转载请标明出处


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Fortran95程序设计

Fortran95程序设计

彭国伦 / 中国电力出版社 / 2002-9 / 59.00元

本书介绍了当前国际上广泛流行的高级算法语言Fortran的全新版本Fortran 95。 本书循序渐进、由浅到深,使用结构化及面向对象程序设计观念,以简捷明了的方式把Fortran 95介绍给读者。书中主要讲述了Fortran 95程序设计的方法,包括数值计算、计算机绘图、窗口程序设计、与Visual C/Visual Basic/Delphi的链接、甚至是游戏程序的编写。 本书语言简洁,实......一起来看看 《Fortran95程序设计》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试