Что это такое?
Набор библиотек на TypeScript для работы с блокчейном Ethereum через его JSON RPC API, плюс вспомогательные функции для разработчиков Dapp. Проект поддерживала компания ChainSafe Systems.
Это одна большая библиотека или набор отдельных пакетов?
Это монорепозиторий примерно из 17 пакетов: основной пакет 'web3' включает всё сразу, а узкоспециализированные, вроде web3-eth, web3-eth-contract и web3-utils, можно использовать по отдельности. Провайдеры подключения по HTTP, IPC и WebSocket — тоже отдельные пакеты.
Как добавить её в проект?
Выполните 'npm install web3' или аналогичную команду Yarn; чтобы получить последние исправления, используйте 'npm install web3@dev'.
Что нужно установить, чтобы начать ей пользоваться?
Нужен Node.js — код рассчитан на Node >= 14, а в README рекомендуется LTS-версия, например Fermium. Yarn и Lerna тоже указаны в требованиях, но нужны только если вы собираете монорепозиторий сами.
Web3.js ещё активно разрабатывается?
Нет — поддержку библиотек прекратят 4 марта 2025 года, а репозиторий на GitHub архивирован, так что новых обновлений ждать не стоит. Анонс и руководства по переходу опубликованы в блоге ChainSafe.
Я учился по старым туториалам с API версии 1.x — мой код продолжит работать?
Не без изменений: в релизе 4.x появились несовместимые изменения, и в репозитории есть руководство по миграции, с которого стоит начать. Если останутся вопросы, README отсылает к Discord проекта.
Что ещё можно с ней делать, кроме отправки транзакций?
Пакеты покрывают все задачи Dapp: ABI-кодирование и декодирование входных и выходных данных EVM, управление аккаунтами и подписание, работу со смарт-контрактами, запросы к Ethereum Name Service, конвертацию адресов Ethereum в IBAN, а также функции валидации и другие утилиты.
Как моему приложению подключиться к ноде Ethereum через неё?
Через подключаемые провайдеры, которые поставляются отдельными пакетами: HTTP, IPC и WebSocket. В репозитории даже есть ручной набор тестов для проверки долгоживущего WebSocket-соединения.
Можно ли использовать её в браузерном приложении, например на React?
Да — в README есть ссылка на пример React App Example и руководство по tree-shaking, чтобы в бандл попадали только используемые части, а сборка дополнительно создаёт специальную веб-версию.
What are similar projects?
sphere-sdk-connect-example, shardeum, ethereumbook, go-ethereum, multicoin-address-validator, robinhood-lp-bot, ethereum-sdk, truffle
Which topics is it in?
rpc, ethereum, cryptocurrency, web3, blockchain, monorepo, websocket, deprecated, sdk, npm, api, nodejs