Dukungan JSON-RPC
Endpoint EVM Rome menggunakan Ethereum JSON-RPC standar. Foundry, Hardhat, ethers, viem, dan MetaMask bekerja dengan Rome dengan cara yang sama seperti pada rantai EVM mana pun. Halaman ini mencantumkan apa yang didukung dan beberapa perilaku khusus Rome yang perlu diketahui.
Metode yang didukung
Inti (state & eksekusi): eth_chainId, eth_blockNumber, eth_getBalance, eth_getCode, eth_getStorageAt, eth_getTransactionCount, eth_call, eth_estimateGas, eth_gasPrice, eth_maxPriorityFeePerGas, eth_feeHistory.
Blok & transaksi: eth_getBlockByNumber, eth_getBlockByHash, eth_getBlockReceipts, eth_getTransactionByHash, eth_getTransactionReceipt, eth_sendRawTransaction, varian berdasarkan indeks/jumlah blok.
Log & filter: eth_getLogs, eth_newFilter, eth_newBlockFilter, eth_getFilterChanges, eth_getFilterLogs, eth_uninstallFilter.
Langganan WebSocket: eth_subscribe / eth_unsubscribe (newHeads, logs). Lihat Langganan WebSocket.
Net / web3: net_version, net_listening, net_peerCount, web3_clientVersion.
Tidak didukung
debug_traceTransaction / trace_* (pelacakan transaksi), eth_getProof, eth_createAccessList, eth_blobBaseFee (tidak ada transaksi blob), txpool_* (tidak ada mempool publik). newPendingTransactions langganan diterima tetapi tidak pernah memancarkan apa pun.
Perilaku khusus Rome
Gas berasal dari Solana โ estimasikan, jangan hardcode
Rome mengukur eksekusi dalam unit komputasi Solana, yang diekspos sebagai gas EVM. Konsekuensi praktis:
Selalu biarkan tooling Anda mengestimasi gas.
forge create,cast, dan Hardhat memanggileth_estimateGasdi on-chain dan mendapatkan nilai yang benar secara otomatis.Jangan hardcode
21000untuk transfer native. Transfer ke alamat yang belum ada biayanya lebih dari 21000 (karena membuat akun penerima). Estimasi menangani ini; sebuah21000gas limit yang di-hardcode akan gagal untuk penerima baru.
forge script --broadcast memerlukan --skip-simulation
forge script --broadcast memerlukan --skip-simulationforge script menetapkan gas limit broadcast-nya dari sebuah lokal simulasi, yang memberikan alokasi terlalu rendah terhadap model gas Rome. Tambahkan --skip-simulation agar Foundry menggunakan eth_estimateGas sebagai gantinya:
forge create, cast send, dan Hardhat tidak terpengaruh โ mereka sudah mengestimasi di on-chain.
eth_getLogs dibatasi rentang (~12.000 blok)
eth_getLogs dibatasi rentang (~12.000 blok)Seperti Infura, Alchemy, dan RPC produksi lainnya, eth_getLogs menolak rentang blok yang terlalu lebar (kesalahan -32005). Batasi kueri Anda:
Sebuah queryFilter tanpa rentang memindai seluruh histori dan akan melampaui batas โ berikan sebuah fromBlock/toBlock. Asersi event berbasis receipt (mis. menunggu tx dan membaca log-nya) tidak terpengaruh.
Biaya
eth_gasPrice mengembalikan harga nyata yang diturunkan dari oracle; wallet (termasuk MetaMask) menggunakannya dan menampilkan biaya yang benar. Field biaya yang dikirim diterima secara permisif โ baik transaksi legacy maupun EIP-1559 masuk dengan default tooling standar.
Terakhir diperbarui
Apakah ini membantu?