Поддержка JSON-RPC
Конечные точки Rome EVM поддерживают стандартный Ethereum JSON-RPC. Foundry, Hardhat, ethers, viem и MetaMask работают с Rome так же, как и с любой другой EVM-цепочкой. На этой странице перечислено, что поддерживается, а также несколько специфичных для Rome особенностей, о которых стоит знать.
Поддерживаемые методы
Основное (состояние и выполнение): eth_chainId, eth_blockNumber, eth_getBalance, eth_getCode, eth_getStorageAt, eth_getTransactionCount, eth_call, eth_estimateGas, eth_gasPrice, eth_maxPriorityFeePerGas, eth_feeHistory.
Блоки и транзакции: eth_getBlockByNumber, eth_getBlockByHash, eth_getBlockReceipts, eth_getTransactionByHash, eth_getTransactionReceipt, eth_sendRawTransaction, варианты по индексу/количеству блоков.
Логи и фильтры: eth_getLogs, eth_newFilter, eth_newBlockFilter, eth_getFilterChanges, eth_getFilterLogs, eth_uninstallFilter.
Подписки WebSocket: eth_subscribe / eth_unsubscribe (newHeads, logs). См. Подписки WebSocket.
Сеть / web3: net_version, net_listening, net_peerCount, web3_clientVersion.
Не поддерживается
debug_traceTransaction / trace_* (трассировка транзакций), eth_getProof, eth_createAccessList, eth_blobBaseFee (blob-транзакции отсутствуют), txpool_* (публичный mempool отсутствует). newPendingTransactions подписки принимаются, но события не отправляются.
Особенности Rome
Газ определяется Solana — оценивайте, а не задавайте вручную
Rome измеряет выполнение в вычислительных единицах Solana, которые отображаются как EVM gas. Практические последствия:
Всегда позволяйте инструментам выполнять оценку газа.
forge create,castи Hardhat вызываютeth_estimateGasв сети и автоматически получают корректное значение.Не задавайте вручную
21000для нативных переводов. Перевод на адрес, который еще не существует, стоит больше 21000 (создается счет получателя). Оценка учитывает это; жестко заданный21000лимит газа приведет к ошибке для новых получателей.
forge script --broadcast требует --skip-simulation
forge script --broadcast требует --skip-simulationforge script устанавливает лимит газа для broadcast на основе локальной симуляции, которая недостаточно соответствует модели газа Rome. Добавьте --skip-simulation , чтобы Foundry использовал вместо этого eth_estimateGas сети:
forge create, cast send и Hardhat не затрагиваются — они уже выполняют оценку в сети.
eth_getLogs имеет ограничение по диапазону (~12 000 блоков)
eth_getLogs имеет ограничение по диапазону (~12 000 блоков)Как и Infura, Alchemy и другие production RPC-сервисы, eth_getLogs отклоняет слишком широкие диапазоны блоков (ошибка -32005). Ограничивайте запросы:
Запрос queryFilter без диапазона сканирует всю историю и превысит лимит — явно указывайте fromBlock/toBlock. Проверки событий на основе receipt (например, ожидание транзакции и чтение ее логов) не затрагиваются.
Комиссии
eth_gasPrice возвращает реальную цену, полученную от оракула; кошельки (включая MetaMask) используют ее и отображают корректные комиссии. Передаваемые поля комиссии принимаются гибко — как legacy-, так и EIP-1559-транзакции проходят со стандартными значениями инструментов.
Последнее обновление
Это было полезно?