1. 首页
  2. 资讯
  3. 技术指南

技术指南 | Web3.js基于以太坊的Javascript API

web3.js是一个库集合,你可以使用HTTP或IPC连接本地或远程以太它节点进行交互。 web3的JavaScript库能够与以太坊区块链交互。 它可以检索用户帐户,发送交易,与智能合约交互等。

Version : 1.0.0-bet…

web3.js是一个库集合,你可以使用HTTP或IPC连接本地或远程以太它节点进行交互。 web3的JavaScript库能够与以太坊区块链交互。 它可以检索用户帐户,发送交易,与智能合约交互等。

Version : 1.0.0-beta.36

技术指南 | Web3.js基于以太坊的Javascript API

Web3.js API类型

  1. eth:Etherum区块链相关方法;
  2. net:节点的网络状态;
  3. personal:帐户功能和发送;
  4. db:获取/放置本地LevelDB;
  5. shh:使用Whisper的P2P消息传递;

安装Web3.js

node

技术指南 | Web3.js基于以太坊的Javascript API

实例化web3

技术指南 | Web3.js基于以太坊的Javascript API

首先,我们检查是否使用的dapp浏览器或更新版本的MetaMask,将以太坊提供程序注入到window object中。 如果是这样,我们使用它来创建我们的web3 object,但我们还需要使用ethereum.enable()显式请求访问帐户。

如果以ethereum object不存在,我们将检查注入的web3实例。 如果它存在,则表示我们正在使用较旧的dapp浏览器(如Mist或较旧版本的MetaMask)。 如果是这样,我们可以获取到它的提供者并使用它来创建我们的web3 object。

如果没有注入web3实例,我们将根据本地提供程序创建web3对象。 (这种后备适用于开发环境,但不安全且不适合生产环境。)

Web3.js的例子

PS:不推荐使用web3.version.getNode。

技术指南 | Web3.js基于以太坊的Javascript API

余额

检查用户的余额

  1. web3.eth.getAccounts:从以太坊节点获取帐户,不推荐使用web3.eth.accounts。
  2. web3.eth.getBalance:获取帐户的余额。
  3. web3.utils.fromWei:将wei转换为ether,不推荐使用web3.fromWei。

技术指南 | Web3.js基于以太坊的Javascript API

转移

将以太网从“A”转移到“B”

txnObject(事务对象)是web3.eth.sendTransaction的第一个参数。 txnObject由JSON组成。

from:String  – 发送帐户的地址。

to:String  – 目标钱包地址。

value:Number | String | BigNumber  – (可选)您希望发送到目标地址的以太网的数量。

gas:Number | String | BigNumber  – (可选,默认:待定)用于交易的gas量(未使用的gas将被退还)。

gasPrice:Number | String | BigNumber  – (可选,默认:待定)wei中此交易的gas价格,默认为平均网络gas价格。

data:String  – (可选)包含消息的关联数据的字节字符串,或者在合同创建事务的情况下,初始化代码。

nonce:Number  – (可选)nonce的整数。 这允许覆盖使用相同nonce的自己的挂起事务。

技术指南 | Web3.js基于以太坊的Javascript API

实践练习

我使用上面的方法制作了一个网页。

  • 获取以太坊节点信息
  • 获得用户的余额
  • 转移以太币

技术指南 | Web3.js基于以太坊的Javascript API

您将使用MetaMask或Ganache。 我建议你使用Ganache,这是一个用于以太坊开发的个人区块链,可用于部署合同,开发应用程序和运行测试。 如果您还没有安装,请下载Ganache并双击该图标安装应用程序。 这将生成在端口7545上本地运行的区块链同时将端口更改为8545。

(来源:公众号:区块链研究实验室)

声明:登载此文出于传递更多信息之目的,观点仅代表作者本人,绝不代表Hi区块链赞同其观点或证实其描述。
提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。