При работе с Ethereum и Web3.js часто приходится сталкиваться с необходимостью конвертировать эфиры разных номиналов. Одним из таких преобразований является преобразование Wei (наименьшая единица эфира) в сам эфир. В этой статье блога мы рассмотрим несколько методов выполнения такого преобразования с помощью Web3.js и приведем примеры кода.
Метод 1: использование библиотеки web3.utils
Web3.js предоставляет служебную библиотеку под названием web3.utils, которая предлагает удобные функции для вычислений, связанных с Ethereum, включая преобразование Wei в Ether.
const Web3 = require('web3');
const web3 = new Web3();
const weiValue = '1000000000000000000'; // Wei value to convert
const etherValue = web3.utils.fromWei(weiValue, 'ether');
console.log('Ether value:', etherValue);
Метод 2: использование объекта web3.eth
Web3.js также предоставляет объект web3.eth, который обеспечивает прямой доступ к функциям, связанным с Ethereum. Мы можем использовать объект web3.ethдля конвертации Wei в эфир, разделив значение Wei на соответствующий коэффициент преобразования.
const Web3 = require('web3');
const web3 = new Web3();
const weiValue = '1000000000000000000'; // Wei value to convert
const etherValue = web3.utils.toBN(weiValue).div(web3.utils.toBN('1000000000000000000')).toString();
console.log('Ether value:', etherValue);
Метод 3. Использование библиотеки ethers.js
Помимо Web3.js, есть еще одна популярная библиотека JavaScript для взаимодействия с Ethereum — ethers.js. Эта библиотека предоставляет простой метод конвертации Wei в Ether.
const { ethers } = require('ethers');
const weiValue = '1000000000000000000'; // Wei value to convert
const etherValue = ethers.utils.formatEther(weiValue);
console.log('Ether value:', etherValue);
Метод 4: преобразование вручную
Если вы предпочитаете ручной подход, вы можете выполнить преобразование вручную, разделив значение Wei на коэффициент преобразования Wei-to-Ether, который равен 10^18.
const weiValue = '1000000000000000000'; // Wei value to convert
const etherValue = parseFloat(weiValue) / 10 18;
console.log('Ether value:', etherValue);
В этой статье мы рассмотрели несколько методов конвертации Wei в Ether с помощью Web3.js. Мы рассмотрели использование служебных функций Web3.js, прямое деление с помощью объекта web3.eth, библиотеку ethers.jsи преобразование вручную. В зависимости от ваших предпочтений и требований проекта вы можете выбрать наиболее подходящий метод для вашего приложения.
Понимая эти методы преобразования, вы сможете с удобством выполнять преобразования Wei в Ether в своих проектах Web3.js и создавать мощные децентрализованные приложения на блокчейне Ethereum.