web3.js 访问区块链网络

我们将尝试通过 web3.js 访问区块链网络,将读取某个账号的余额。

 

1. 创建 web3 连接

首先启动 node:

$ node

在 node 控制台中加载 Web3.js 库:

const Web3 = require('web3')

接下来,使用Infura URL,创建Web3连接。声明Infura URL变量:

const rpcURL = "https://mainnet.infura.io/YOUR_INFURA_API_KEY"

确保使用之前获得的实际 Infura API 密钥替换此处的 YOUR_INFURA_API_KEY。创建 Web3 连接:

const web3 = new Web3(rpcURL)

 

2. 读取余额

现在有了这个 Web3 连接,就可以与以太坊主网进行通信。

让我们使用这个连接来检查这个帐户的余额: 0x03118E2c88676d31ee397E1eEf7789fECfbC40b9。通过使用web3.eth.getBalance()检查帐户余额,我们可以看一下这个帐户下有多少以太币。

首先,将地址赋给一个变量:

const address = "0x03118E2c88676d31ee397E1eEf7789fECfbC40b9"

检查账户余额:

// 读取 address 中的余额,余额单位是 wei
web3.eth.getBalance(address, (err, wei) => {

    // 余额单位从wei转换为ether
    balance = web3.utils.fromWei(wei, 'ether')
    console.log("balance: " + balance)
})

输出:

balance: 6.97320381

 

3. 小结

以下是本教程中编写的代码概要:

const Web3 = require('web3')
const rpcURL = '' // RPC URL
const web3 = new Web3(rpcURL)
const address = '' // 账户地址
// 读取 address 中的余额,余额单位是 wei
web3.eth.getBalance(address, (err, wei) => {
    // 余额单位从 wei 转换为 ether
    balance = web3.utils.fromWei(wei, 'ether')
    console.log("balance: " + balance)
})

 

4. Web3.js 资源

Web3.js 更多使用细节,可以参考官方文档:https://web3js.readthedocs.io/

注意,Web3.js 正在积极开发中,可以访问 Web3.js github 存储库,了解它的进展,也可以阅读代码更好地理解库本身。

web3.js github库: https://github.com/ethereum/web3.js/

智能合约对象是 JavaScript 中对智能合约的表示,可以使用智能合约对象访问智能合约。对象可以使用 web3.eth.Contract() 函数获得,此函数需要2个参数: 智能合约ABI、智能合约地址。& ...