Вы здесь

5 полезных функций Web3JS для даппов Ethereum

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

5 полезных функций Web3JS для даппов Ethereum

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");
...
Категория: 
Tutorial
5
Ваша оценка: Нет Средняя: 5 (1 оценка)
17617 / 0
Аватар пользователя Serg Demin
Публикацию добавил: Serg Demin
Дата публикации: ср, 06/03/2020 - 09:22

Что еще почитать: