ethers v5 наиболее распространенная версия библиотеки web3 для nodejs.
Недостатки ethers v5:
- рудимент в виде bignumber.js вместо нативного bigint
- в базовой версии невозможно нормально отправлять много eth_call запросов корзинами
- через
ethers.providers.JsonRpcBatchProvider уже лучше, в одном json-rpc запросе до 1000 eth_call умещается. Но каждый eth_call это по прежнему открытие своего контекста на ноде и чтение данных, не самый эффективный способ.- базовая настройка rpc провайдера, каждый раз нужно вспоминать публичный рпц для тестов, нет заранее установленных
Недостатки ethers v6:
- нужно переучиваться, попереназывали методы, сложно привыкать.
- работа с Contract переделана, теперь через дебаггер там прокси и читать поля стало менее удобно
- перешли на нативный bigint, наконец-то!
Преимущество v5 в том, что ai-агенты видели много кодовой базы на просторах интернетов, поэтому лучше смогут по ней консультировать.
В остальном намечается хорошая альтернатива для ethers, это viem, docs
Фичи:
- Большинство evm сетей имеют преднастройки и публичные рпц
- Представление чисел в нативном bigint, буст к производительности
- Возможность включить eth_call batch через multicall, когда внутри одного eth_call пакуется несколько read-only запросов. Сделать такое себе не тривиальная задача, хотя и реализуемо.
Тут же это доступно сразу, главное не упирать в rpc: request rate limit.
- Более понятная навигация по функциям