For the complete documentation index, see llms.txt. This page is also available as Markdown.

Dukungan JSON-RPC

Metode Ethereum JSON-RPC yang didukung oleh endpoint Rome EVM, plus perilaku khusus Rome — untuk Foundry, Hardhat, ethers, viem, dan MetaMask.

Endpoint EVM Rome menggunakan JSON-RPC Ethereum standar. Foundry, Hardhat, ethers, viem, dan MetaMask bekerja terhadap Rome dengan cara yang sama seperti di chain 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.

Metode introspeksi kecil: rpc_modules (mencantumkan debug, eth, net, rome, rpc, txpool, web3), eth_syncing (selalu false), eth_accounts (selalu berupa daftar kosong), eth_getUncleCountByBlockNumber, eth_getUncleCountByBlockHash, eth_getUncleByBlockNumberAndIndex dan eth_getUncleByBlockHashAndIndex (tidak ada uncle, jadi hitungannya adalah 0x0 dan pencarian mengembalikan null), eth_newPendingTransactionFilter (diterima, tetapi tidak pernah mengembalikan hash karena tidak ada mempool publik), dan txpool_status, yang selalu mengembalikan {"pending":"0x0","queued":"0x0"} karena tidak ada mempool publik.

Tracing: debug_traceRomeTransaction mengambil hash transaksi dan mengembalikan rincian per-sub-call dan per-CPI untuk transaksi yang menggabungkan beberapa panggilan menjadi satu batch. Transaksi biasa mengembalikan null, begitu pula hash yang belum dikenal atau belum diindeks.

Tidak didukung

debug_traceTransaction / trace_* (pelacakan transaksi bergaya Ethereum; mereka mengembalikan -32601), eth_getProof, eth_createAccessList, eth_blobBaseFee (tidak ada transaksi blob), dan metode txpool_* selain txpool_status (tidak ada mempool publik). newPendingTransactions langganan diterima tetapi tidak pernah memancarkan apa pun.

Metode ekstensi Rome

Selain RPC Ethereum standar, proxy mengekspos rome_* metode:

Metode
Tujuan

rome_emulateTx

Emulasikan transaksi di luar rantai (mengembalikan hasil eksekusi Solana)

rome_emulateTxWithPayer

Emulasikan terhadap payer tertentu

rome_emulateCallAccounts

Emulasikan dan kembalikan akun Solana yang disentuh suatu panggilan

rome_emulateRegRollup

Emulasikan pendaftaran rollup

rome_getResources

Laporkan status pool sumber daya proxy (payer, pemegang)

rome_mintId

Resolusikan SPL mint di balik pembungkus ERC-20

rome_buildInfo

Info build proxy + program on-chain

rome_isCompatible

Periksa kompatibilitas proxy/program

rome_solanaTxForEvmTx

Dapatkan transaksi Solana untuk hash tx EVM

rome_sendUnsignedTransaction

Kirim transaksi tanpa tanda tangan (alur synthetic-sender)

rome_composeUnsignedAtomicV1

Susun satu transaksi Solana v1 untuk body EIP-1559 tanpa tanda tangan yang diotorisasi oleh tanda tangan Ed25519 dari dompet Solana; dompet menandatanganinya dan aplikasi menyiarkannya. Menolak ketika panggilan tidak muat dalam satu transaksi atomik

rome_composeUnsignedIterativeV1

Sama, tetapi mengembalikan setiap leg (atomik jika muat, jika tidak leg iteratif); dompet menandatangani masing-masing dan mengirimkannya dengan rome_submitSignedV1Plan

rome_submitSignedV1Plan

Siarkan rencana yang ditandatangani (hingga 64 leg); proxy hanya sebagai transport, dompet tetap menjadi fee payer

rome_relayUnsignedV1

Satu tanda tangan dompet, payer proxy yang menjalankan leg; synthetic membayar gas Rome (danai dulu dengan rome_composeExternalDepositV1). Mengembalikan hash tx EVM

rome_composeExternalDepositV1

Satu transaksi yang ditandatangani dompet yang mengkredit saldo gas native synthetic dari token dompet

Perilaku khusus Rome

Gas diturunkan dari Solana — estimasikan, jangan hardcode

Rome mengukur eksekusi dalam unit komputasi Solana, yang ditampilkan sebagai gas EVM. Konsekuensi praktis:

  • Selalu biarkan alat Anda mengestimasi gas. forge create, cast, dan Hardhat memanggil eth_estimateGas di on-chain dan mendapatkan nilai yang tepat secara otomatis.

  • Jangan hardcode 21000 untuk transfer native. Transfer ke alamat yang belum ada biayanya lebih dari 21000 (ia membuat akun penerima). Estimasi menangani ini; gas limit yang dihardcode akan gagal untuk penerima baru. 21000 gas limit akan gagal untuk penerima baru.

forge script --broadcast memerlukan --skip-simulation

forge script menetapkan batas gas broadcast-nya dari simulasi lokal, yang memberi alokasi terlalu sedikit 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-nya (~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 akan memindai seluruh riwayat dan akan melampaui batas — berikan fromBlock/toBlockyang eksplisit. Penegasan event berbasis receipt (misalnya menunggu tx dan membaca log-nya) tidak terpengaruh.

Biaya

eth_gasPrice mengembalikan harga nyata yang berasal dari oracle; dompet (termasuk MetaMask) menggunakannya dan menampilkan biaya yang benar. Field biaya yang dikirim diterima secara longgar — baik transaksi legacy maupun EIP-1559 mendarat dengan default alat standar.

Terakhir diperbarui

Apakah ini membantu?