当前位置:首页 > 区块链新闻 > 正文

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

来源: 互联网时间:2019-04-03 10:56:54

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

Version : 1.0.0-beta.36

Web3.js API类型

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

node

实例化web3

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

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

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

Web3.js的例子

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

余额

检查用户的余额

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

转移

将以太网从“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的自己的挂起事务。

实践练习

我使用上面的方法制作了一个网页。
  • 获取以太坊节点信息
  • 获得用户的余额
  • 转移以太币

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

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

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。