Web3 помогает преодолеть разрыв между традиционным Интернетом и блокчейном Ethereum, позволяя пользователям взаимодействовать с их даппами через браузер. Однако при использовании JavaScript для вашего фронтенда важно знать тонкости Web3JS. Приводим список наиболее полезных и часто используемых функций в Web3JS.

web3.eth.getAccounts()
Используйте эту функцию, чтобы получить все доступные адреса учетных записей.
Используйте:
let accounts = await web3.eth.getAccounts();
console.log(accounts[0]);
Или:
web3.eth.getAccounts().then(console.log);
web3.eth.sendTransaction()
Используйте ее для отправки эфира с одного счета на другой или на адрес смарт-контракта. Для этого, в зависимости от операции, требуется несколько параметров. К ним могут относиться – from, to, valuegas и др.
Если вы используете этот метод как один из элементов вашего фронтэнда, вы можете «перехватывать» определенные события, которые происходят во время отправки в блокчейн. Этими событиями являются transactionHash, receiptconfirmation и error.
Используйте:
web3.eth.sendTransaction({
from: account1,
to: account2,
value: 1000000000
})
.on('transactionHash', () => {
...
})
.on('receipt', () => {
...
})
.on('confirmation', () => {
...
})
.on('error', () => {
...
})
web3.eth.estimateGas()
Если вы выполняете транзакцию на адрес контракта, вам, возможно, придется выполнить оценку газа. Для этого используйте те же параметры, как и в случае с web3.eth.sendTransaction(). Затем можете добавить результат к параметрам вашего вызова функции web3.eth.sendTransaction().
Используйте:
let gasEstimate = await web3.eth.estimateGas({
from: account1,
to: account2,
value: 1000000000
});web3.eth.sendTransaction({
from: account1,
to: account2,
value: 1000000000,
gas: gasEstimate
})
.on('transactionHash', () => {
...
new web3.eth.Contract()
Используйте эту функцию для загрузки развернутого контракта в ваш дапп, чтобы начать взаимодействие с ним. Параметры включают в себя двоичный интерфейс ABI и адрес, на котором был развернут контракт.
Используйте:
let contractInstance = new web3.eth.Contract(
MyContract.abi,
deployedAddress
);
await contractInstance.doSomething();
web3.utils.toWei()
Используйте эту функцию для конвертации эфира в Wei, единицу стоимости, используемую смарт-контрактами.
Используйте:
let weiValue = web3.utils.toWei("1", "ether");
...