Web3.js — это мощная библиотека JavaScript, которая позволяет разработчикам взаимодействовать с блокчейном Ethereum и создавать децентрализованные приложения (DApps). В этой статье мы рассмотрим различные методы, предоставляемые Web3.js, а также примеры кода, демонстрирующие их использование. Независимо от того, являетесь ли вы новичком, желающим начать работу с Web3.js, или опытным разработчиком, желающим улучшить свои навыки разработки DApp, это руководство предоставит вам полный обзор библиотеки.
- Подключение к узлу Ethereum:
Чтобы взаимодействовать с блокчейном Ethereum, сначала необходимо подключиться к узлу Ethereum. Web3.js предоставляет несколько методов установления соединения, например использование Infura или запуск локального узла. Вот пример подключения к узлу Ethereum с помощью Infura:
const Web3 = require('web3');
// Connect to an Ethereum node using Infura
const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID');
- Получение баланса учетной записи:
Вы можете использовать Web3.js для получения баланса учетной записи адреса Ethereum. В следующем примере показано, как получить баланс счета:
const balance = await web3.eth.getBalance('0xYourEthereumAddress');
console.log(`Account balance: ${web3.utils.fromWei(balance, 'ether')} ETH`);
- Отправка транзакций:
Web3.js позволяет отправлять транзакции в сеть Ethereum. Вот пример отправки транзакции:
const account = '0xYourEthereumAddress';
const privateKey = 'YourPrivateKey';
const txObject = {
from: account,
to: '0xRecipientAddress',
value: web3.utils.toWei('1', 'ether'),
};
const signedTx = await web3.eth.accounts.signTransaction(txObject, privateKey);
const txReceipt = await web3.eth.sendSignedTransaction(signedTx.rawTransaction);
console.log(`Transaction hash: ${txReceipt.transactionHash}`);
- Развертывание смарт-контрактов.
С помощью Web3.js вы можете развертывать смарт-контракты и взаимодействовать с ними в блокчейне Ethereum. Вот пример развертывания смарт-контракта:
const contractABI = [...]; // ABI of the smart contract
const contractBytecode = '0x...'; // Bytecode of the smart contract
const myContract = new web3.eth.Contract(contractABI);
myContract.deploy({
data: contractBytecode,
arguments: [arg1, arg2, ...],
})
.send({
from: '0xYourEthereumAddress',
gas: 5000000,
gasPrice: '5000000000',
})
.then((deployedContract) => {
console.log(`Contract address: ${deployedContract.options.address}`);
});
Web3.js — важнейший инструмент для создания децентрализованных приложений на блокчейне Ethereum. В этой статье были рассмотрены лишь несколько методов, предоставляемых библиотекой, включая подключение к узлу Ethereum, получение остатков на счетах, отправку транзакций и развертывание смарт-контрактов. Используя возможности Web3.js, разработчики могут создавать инновационные децентрализованные приложения, предлагающие пользователям децентрализованную и прозрачную функциональность.
Не забудьте изучить официальную документацию Web3.js для получения более подробной информации об использовании библиотеки.