Web3.js 0.20.x API 中文版翻译

本文首发于深入浅出区块链社区
原文链接:Web3.js 0.20.x API 中文版翻译原文已更新,请读者前去原文浏览

文档原始链接为:https://web3.learnblockchain.cn/0.2x.x/,迎接人人前去查阅,本文只是节选开首部份的引见及API列表索引,以下为翻译正文:

为了开辟一个基于以太坊的去中间化运用程序,能够运用web3.js库供应的web3对象, 在底层完成上,web3经由过程RPC挪用与当地节点通讯, web3.js能够与任何暴露了RPC接口的以太坊节点衔接。

web3 包括下面几个对象:

  • web3.eth 用来与以太坊区块链及合约的交互
  • web3.shh 用来与Whisper协定相干交互
  • web3.net 用来猎取收集相干信息
  • web3 包括一些东西

web3运用示例:

想要进修去中间化运用(DAPP)开辟,这门课程不容错过区块链全栈-以太坊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了。

运用回调

由于这套API被设想来与当地的RPC结点交互,一切函数默许运用同步的HTTP的要求。

假如你想提议一个异步的要求。大多数函数许可传一个跟在参数列表后的可选的回调函数来支撑异步,回调函数支撑Error-first回调的作风。

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依靠BigNumber Library,且已自动引入。

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列表

web3

web3.net

web3.eth

web3.db

web3.shh

本教程由登链学院翻译,由深入浅出区块链宣布。

    原文作者:Tiny熊
    原文地址: https://segmentfault.com/a/1190000016296797
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞