Перейти к основному контенту
Change page

Библиотеки JavaScript API

Чтобы веб-приложение могло взаимодействовать с блокчейном Ethereum (т. е. читать данные блокчейна и/или отправлять транзакции в сеть), оно должно подключиться к узлу Ethereum.

Для этой цели каждый клиент Ethereum реализует спецификацию JSON-RPC, так что существует единый набор методов, на которые могут полагаться приложения.

Если вы используете JavaScript для того чтобы подключиться к узлу Ethereum, можно воспользоваться vanilla JavaScript, но существует также несколько удобных библиотек внутри экосистемы которые упрощают эту задачу. С помощью этих библиотек разработчики могут писать интуитивные, однострочные методы для инициализации запросов JSON-RPC (под капотом), которые взаимодействуют с Ethereum.

Обратите внимание, что после Слияния для запуска узла требуются две связанные части программного обеспечения Ethereum — клиент исполнения и клиент консенсуса. Убедитесь, что у вашего узла есть как клиент исполнения, так и клиент консенсуса. Если ваш узел находится не на локальном компьютере (например, работает на инстансе AWS), соответственно обновите IP-адреса в руководстве. Для получения дополнительной информации см. нашу страницу о запуске узла.

Предварительные условия

Помимо понимания JavaScript, может быть полезно разобраться в стеке Ethereum и клиентах Ethereum.

Зачем использовать библиотеки?

Использование библиотеки помогает абстрагироваться от сложности при общении с узлом Ethereum напрямую. Они также предоставляют полезные функции (например, конвертирование ETH в Gwei), позволяя вам, как разработчику, тратить меньше времени на тонкости работы с клиентами Ethereum, и сосредоточиться на уникальных функциях своего приложения.

Функции библиотеки

Подключение к узлам Ethereum

Используя провайдеров, эти библиотеки позволяют вам подключаться к Ethereum и считывать его данные, будь то через JSON-RPC, INFURA, Etherscan, Alchemy или MetaMask.

Предупреждение: Web3.js был заархивирован 4 марта 2025 г. Прочтите объявление (opens in a new tab). Для новых проектов рассмотрите возможность использования альтернативных библиотек, таких как ethers.js (opens in a new tab) или viem (opens in a new tab).

Пример эфиров

// BrowserProvider является оболочкой для стандартного провайдера Web3, который
// MetaMask внедряет в каждую страницу как window.ethereum
const provider = new ethers.BrowserProvider(window.ethereum)

// Плагин MetaMask также позволяет подписывать транзакции для
// отправки эфира и оплаты для изменения состояния в блокчейне.
// Для этого нам нужен подписант аккаунта...
const signer = provider.getSigner()

Web3js примеры

После настройки вы сможете запросить блокчейн для:

  • номер блока
  • прогноз газа
  • события смарт-контракта
  • идентификатор сети
  • и многое другое...

Функциональность кошелька

Эти библиотеки позволяют создавать кошельки, управлять ключами и подписывать транзакции.

Вот примеры с эфиров

Прочесть полную документацию (opens in a new tab)

После настройки вы сможете:

  • создать аккаунт
  • отправить Транзакцию
  • подписать транзакцию
  • и многое другое...

Взаимодействие с функциями смарт-контрактов

Клиентские библиотеки JavaScript позволяют Вашему приложению вызывать функции смарт-контрактов, считывая двоичный интерфейс приложения (ABI) скомпилированного контракта.

ABI, по сути, объясняет функции контракта в формате JSON и позволяет использовать его как обычный объект JavaScript.

Таким образом, выглядит Solidity контракт:

Приведет к следующему JSON:

Вы сможете:

  • Отправить транзакцию к умному контракту и выполнить его метод
  • Сделать вызов для оценки газа, который будет выполняться при запуске в EVM
  • Развернуть контракт
  • И другое...

Вспомогательные функции

Утилитные функции дают вам удобные shortcuts, которые делают строительство с Ethereum немного проще.

Значения ETH находятся в Wei по умолчанию. 1 ETH = 1,000,000,000,000,000,000 WEI – это означает, что вы имеете дело с большим количеством чисел! web3.utils.toWei конвертирует для вас эфир в Wei.

И в эфире он выглядит так:

// Get the balance of an account (by address or ENS name)
balance = await provider.getBalance("ethers.eth")
// { BigNumber: "2337132817842795605" }

// Often you will need to format the output for the user
// which prefer to see values in ether (instead of wei)
ethers.utils.formatEther(balance)
// '2.337132817842795605'

Доступные библиотеки

Web3.js - API Ethereum для JavaScript.

Ethers.js - Полная реализация кошелька Ethereum и утилиты на JavaScript и TypeScript.

The Graph - Протокол для индексирования данных Ethereum и IPFS и их запроса с помощью GraphQL.

Alchemy SDK - Оболочка для Ethers.js с расширенными API.

viem - Интерфейс TypeScript для Ethereum.

Drift - Метабиблиотека TypeScript со встроенным кешированием, хуками и тестовыми заглушками.

Дополнительные материалы

Знаете ресурс сообщества, который вам пригодился? Измените эту страницу и добавьте его!

Последнее обновление страницы: 25 февраля 2026 г.

Была ли эта статья полезной?