Взаимодействие с блокчейном Ethereum с помощью JavaScript
Эта статья предназначена для разработчиков, желающих начать разработку блокчейна с помощью Ethereum. Предполагается, что у вас есть некоторые базовые знания о блокчейне Ethereum , о том, что такое кошелек, каковы сборы за газ, и что вы создали тестовый кошелек MetaMask. Основное внимание здесь уделяется использованию ethers.js для чтения и записи данных в блокчейне.
ethers.js — это библиотека, которая упрощает взаимодействие с Ethereum и другими блокчейнами, совместимыми с EVM.
Что ожидать
В этой статье рассматриваются несколько примеров взаимодействия с блокчейном Ethereum, в том числе:
1. Чтение баланса ETH на счете.
2. Чтение баланса токена ERC20 ($ IMX) на счете.
3. Отправка транзакции (отправка ETH) с одного счета на другой.
4. Запрос событий, генерируемых в блокчейне.
5. Проверка информации в определенных блоках.
Я опубликовал здесь репозиторий кода, который содержит несколько примеров. Не стесняйтесь клонировать его, чтобы начать: Взаимодействие с Ethereum с демонстрацией JavaScript
Введение
Веб-приложения в экосистеме Ethereum (dapps) обычно делают запросы к клиентам Ethereum для чтения данных, передачи стоимости между кошельками и взаимодействия со смарт-контрактами. Обычно эти веб-приложения используют провайдера , который был введен в браузер приложением кошелька. Провайдер в данном контексте — это объект JavaScript, соответствующий стандарту EIP - 1193 . Он используется для отправки запросов RPC клиентам Ethereum и получения их ответов. Следующие примеры представляют собой сценарии Node.js, которые используют свои собственные объекты- поставщики , созданные с помощью библиотеки ethers.js.
Чтение балансов
Первый базовый пример показывает, как вы можете прочитать баланс ETH адреса кошелька. Поскольку это транзакция только для чтения, мы можем просто создать объект провайдера и вызвать метод getBalance . Этот запрос не обновляет состояние блокчейна и, следовательно, не требует от пользователя оплаты газа.
Чтение балансов токенов ERC20
В следующем примере показано, как можно прочитать баланс токена ERC20 в кошельке. Токен ERC20 — это взаимозаменяемый токен, который контролируется смарт-контрактом. Это отслеживает общее количество токенов ERC20, имя, символ валюты и, что более важно, баланс всех счетов, на которых хранится токен.
Чтобы прочитать баланс токена ERC20 кошелька, нам нужно подключиться к смарт-контракту и вызвать функцию balanceOf() .
В этом примере мы будем использовать контракт Immutable X ERC20 для проверки баланса кошелька. Чтобы подключиться к смарт-контракту, вам необходимо знать адрес контракта, интерфейс контракта (называемый ABI) и объект поставщика. Опять же, поскольку это запрос только для чтения, вам не придется платить за газ.
Отправка транзакции
Сеть Ethereum позволяет своим пользователям отправлять и получать ETH в одноранговой сети. Если я знаю адрес вашего кошелька, я могу отправить вам немного своего эфира. Это простая транзакция, и поскольку это меняет состояние блокчейна (ваш баланс увеличивается, а мой уменьшается), для обработки транзакции потребуется плата за газ.
MetaMask — одно из самых популярных приложений для кошельков, которое упрощает отправку средств. Однако, если вы хотите сделать это программно, это способ, которым вы можете этого добиться.
В этом примере требуется закрытый ключ учетной записи, которая отправляет средства, поскольку он требуется для авторизации транзакции. Очень важно сохранить этот закрытый ключ в секрете, поскольку любой, у кого он есть, сможет отправлять транзакции из учетной записи. Если вы используете этот пример, создайте тестовый кошелек в MetaMask и никогда не кладите в него ETH.
В этом примере мы подключаемся к тестовой сети Goerli (тестовая сетевая версия Ethereum) и отправляем транзакцию, используя Goerli ETH. Если в вашем кошельке нет Goerli ETH, вы можете запросить его здесь:https://goerlifaucet.com/
Запрос событий в блокчейне
Есть много других вещей, которые вы можете сделать с блокчейном, один из которых — запросить состояние блокчейна, чтобы увидеть, что произошло. Мы можем проверить, какие адреса отправили средства на какие другие адреса и кучу других транзакций со смарт-контрактами. Когда происходят подобные события, смарт-контракт генерирует событие, которое можно запросить и прочитать.
В следующем примере показано, как запрашивать эти события. Снова мы смотрим на контракт токена Immutable X ERC20 для совершенных транзакций. Применяя различные фильтры, мы можем сузить результаты до событий, которые мы ищем.
Проверить информацию в блоке
Последний пример, который мы рассмотрим, — это еще один запрос на чтение. Используя провайдера, мы можем запросить любой блок в цепочке блоков и проверить транзакции и другую информацию, содержащуюся в нем.
Заключение
С этими базовыми примерами вы сможете приступить к созданию собственного приложения или изучить активность блокчейна Ethereum. Удачи!

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































