Web3.js 是一个与以太坊区块链交互的 JavaScript 库。以下是一个简单的 Web3.js 实战示例,包括连接到以太坊节点、获取账户余额、发送交易等操作。
环境搭建
- 首先,确保已经安装了 Node.js。可以在终端中输入
node -v
来检查版本,如果未安装则前往Node.js 官方网站进行安装。 - 创建一个新的目录,在该目录下初始化一个 Node.js 项目,执行命令
npm init -y
,这将生成一个package.json
文件。 - 安装
web3.js
库,执行命令npm install web3
。
连接到以太坊节点
- 可以使用 Infura 等服务来连接到以太坊节点,也可以在本地搭建以太坊节点。这里以 Infura 为例,创建一个
index.js
文件,代码如下:
javascript
const Web3 = require('web3');
// 创建一个Web3实例,连接到Infura节点
const web3 = new Web3('https://mainnet.infura.io/v3/YOUR-PROJECT-ID');
// 替换YOUR-PROJECT-ID为你在Infura上创建项目后得到的ID
获取账户余额
- 要获取账户余额,需要知道账户的地址。以下是获取账户余额的代码:
javascript
const accountAddress = '0xYourAccountAddress';
web3.eth.getBalance(accountAddress)
.then(result => {
// 将余额从Wei转换为以太币
const balanceInEther = web3.utils.fromWei(result, 'ether');
console.log(`账户余额: ${balanceInEther} ETH`);
})
.catch(error => console.error('获取余额错误:', error));
发送交易
- 发送交易需要有发送者的私钥和接收者的地址等信息。以下是一个发送以太币交易的示例:
javascript
const privateKey = 'YourPrivateKey';
const fromAddress = '0xYourAccountAddress';
const toAddress = '0xRecipientAccountAddress';
const amount = web3.utils.toWei('1', 'ether'); // 要发送的以太币数量,这里是1以太币
const transaction = {
from: fromAddress,
to: toAddress,
value: amount,
gas: 21000, // 交易所需的gas量
gasPrice: web3.utils.toWei('50', 'gwei') // gas价格
};
const signPromise = web3.eth.accounts.signTransaction(transaction, privateKey);
signPromise.then(signedTx => {
web3.eth.sendSignedTransaction(signedTx.rawTransaction)
.on('transactionHash', hash => console.log('交易哈希:', hash))
.on('receipt', receipt => console.log('交易收据:', receipt))
.on('error', error => console.error('交易错误:', error));
})
.catch(error => console.error('签名交易错误:', error));
在实际应用中,需要将YOUR-PROJECT-ID
、YourAccountAddress
、YourPrivateKey
、0xRecipientAccountAddress
等替换为真实的值。同时,要注意私钥的安全,不要在生产环境中明文存储私钥。
此外,Web3.js 还可以用于与智能合约进行交互,包括部署智能合约、调用智能合约的函数等。要与智能合约交互,需要知道智能合约的 ABI(应用二进制接口)和地址。可以使用web3.eth.Contract
对象来创建一个智能合约实例,然后调用其方法来与智能合约进行交互。
以上只是 Web3.js 的基本实战示例,实际应用中可能会遇到更多复杂的情况和需求,需要根据具体情况进行调整和扩展。
编辑
扫描二维码关注公众号,回复:
17620578 查看本文章

分享