博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web3.js 0.20.x API 中文版翻译
阅读量:6568 次
发布时间:2019-06-24

本文共 2284 字,大约阅读时间需要 7 分钟。

文档原始链接为:,欢迎大家前往查阅,本文只是节选开头部分的介绍及API列表索引,以下为翻译正文:

为了开发一个基于以太坊的去中心化应用程序,可以使用提供的web3对象, 在底层实现上,web3通过与本地节点通信, web3.js可以与任何暴露了RPC接口的以太坊节点连接。

web3 包含下面几个对象:

  • web3.eth 用来与以太坊区块链及合约的交互
  • web3.shh 用来与Whisper协议相关交互
  • web3.net 用来获取网络相关信息
  • web3 包含一些工具

web3使用示例:

想要学习去中心化应用(DAPP)开发,这门课程不容错过

引入web3

首先你需要将web3引入到应用工程中,可以通过如下几个方法:

  • npm: npm install web3
  • bower: bower install web3
  • meteor: meteor add ethereum:web3
  • vanilla: link the dist./web3.min.js

然后你需要创建一个web3的实例,设置一个provider。为了保证你不会覆盖一个已有的provider(Mist浏览器或安装了MetaMak的浏览器会提供Provider),需要先检查是否web3实例已存在,示例代码如下:

if (typeof web3 !== 'undefined') {  web3 = new Web3(web3.currentProvider);} else {  // set the provider you want from Web3.providers  web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));}

成功引入后,你现在可以使用web3对象的了。

使用回调

由于这套API被设计来与本地的RPC结点交互,所有函数默认使用同步的HTTP的请求。

如果你想发起一个异步的请求。大多数函数允许传一个跟在参数列表后的可选的回调函数来支持异步,回调函数支持的风格。

web3.eth.getBlock(48, function(error, result){    if(!error)        console.log(JSON.stringify(result));    else        console.error(error);})

批量请求

可以允许将多个请求放入队列,并一次执行。

注意:批量请求并不会更快,在某些情况下,同时发起多个异步请求,也许更快。这里的批量请求主要目的是用来保证请求的串行执行。

var batch = web3.createBatch();batch.add(https://web3.learnblockchain.cn/0.2x.x/web3.eth.getBalance.request('0x0000000000000000000000000000000000000000', 'latest', callback));batch.add(https://web3.learnblockchain.cn/0.2x.x/web3.eth.contract(abi).at(address).balance.request(address, callback2));batch.execute();

web3.js中的大数处理

如果是一个数据类型的返回结果,通常会得到一个BigNumber对象,因为Javascript不能正确的处理BigNumber,看看下面的例子:

"101010100324325345346456456456456456456"// "101010100324325345346456456456456456456"101010100324325345346456456456456456456// 1.0101010032432535e+38

所以web3.js依赖,且已经自动引入。

var balance = new BigNumber('131242344353464564564574574567456');// or var balance = web3.eth.getBalance(someAddress);balance.plus(21).toString(10); // toString(10) converts it to a number string// "131242344353464564564574574567477"

下一个例子中,我们会看到,如果有20位以上的浮点值,仍会导致出错。所以推荐尽量让帐户余额以wei为单位,仅仅在需要向用户展示时,才转换为其它单位。

var balance = new BigNumber('13124.234435346456466666457455567456');balance.plus(21).toString(10); // toString(10) converts it to a number string, but can only show upto 20 digits// "13145.23443534645646666646" // your number will be truncated after the 20th digit

Web3.js API列表

本教程由翻译,由深入浅出区块链发布。

转载地址:http://pfvjo.baihongyu.com/

你可能感兴趣的文章
使用Lucene.Net实现全文检索
查看>>
多线程使用场景
查看>>
keras简单介绍与使用
查看>>
UBI系统原理-中【转】
查看>>
继电器是如何成为CPU的(1)【转】
查看>>
多表一对一左关联
查看>>
关于node.js的进程管理
查看>>
tinymce4.x 上传本地图片(自己写个插件)
查看>>
极客学院职业路径图课程视频下载-爬虫
查看>>
java,使用get、post请求url地址
查看>>
基于Maven构建Web项目
查看>>
Linux下修改Mysql的用户(root)的密码
查看>>
Reactjs 的 PropTypes 使用方法
查看>>
linux开机流程
查看>>
【转载】反向代理为何叫反向代理?
查看>>
Windows 7环境下安装PHP 5.2.17
查看>>
mount(挂载)
查看>>
使用swoole编写简单的echo服务器
查看>>
简明现代魔法博客图书馆之php学习记录
查看>>
深入了解java线程池
查看>>