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

Langganan WebSocket

Berlangganan event Rome EVM melalui WebSocket — eth_subscribe dengan newHeads dan logs, siap pakai dengan ethers; dengan viem, gunakan polling.

Endpoint Rome EVM mendukung langganan Ethereum WebSocket (eth_subscribe / eth_unsubscribe) di atas wss://. Hubungkan ke host yang sama dengan RPC HTTPS, dengan wss:// skema:

wss://<chain>.<network>.romeprotocol.xyz/

Inilah yang ethers WebSocketProvider digunakan di balik layar, jadi .on('block') dan contract.on(event) langsung berfungsi. viem memerlukan satu pengaturan, dijelaskan di viem bagian.

Jenis langganan

Tipe
Dipicu pada
Digunakan untuk

newHeads

setiap blok baru

ticker blok, menyegarkan saldo/nonce, bot per blok, pengindeks

logs

mencocokkan event (berdasarkan alamat / topik)

merespons event kontrak Anda, relayer/jembatan, bot trading

newPendingTransactions

—

diterima tetapi tidak pernah memancarkan (Rome tidak memiliki mempool publik)

ethers (v6)

import { ethers } from "ethers";

const provider = new ethers.WebSocketProvider(
  "wss://martius.testnet.romeprotocol.xyz/"
);

// newHeads
provider.on("block", (blockNumber) => {
  console.log("blok baru", blockNumber);
});

// logs — respons terhadap event kontrak
const contract = new ethers.Contract(address, abi, provider);
contract.on("Transfer", (from, to, value) => {
  console.log("Transfer", from, to, value.toString());
});

viem

viem's webSocket transport mendaftarkan langganan hanya ketika id adalah string. Rome mengembalikan angka, jadi watchBlocks melalui sebuah webSocket transport tidak menerima apa pun. Berikan poll: true dan viem melakukan polling melalui koneksi sebagai gantinya (diperiksa dengan watchBlocks), atau gunakan ethers untuk pembaruan push.

JSON-RPC mentah

ID langganan adalah angka JSON, bukan string heksadesimal, dan notifikasinya membawa angka yang sama. ethers menangani ini untuk Anda. viem's webSocket transport hanya menerima id string, jadi ia membuang notifikasinya (lihat viem). Jika Anda menulis klien mentah, bandingkan id sebagai angka dan kirim kembali angka tersebut ke eth_unsubscribe.

Untuk logs, berikan objek filter sebagai parameter kedua:

Catatan

  • Langganan mendorong pembaruan saat blok baru dihasilkan (latensinya kira-kira seukuran waktu satu blok).

  • Untuk koneksi yang berumur panjang, tangani koneksi ulang di klien Anda — standar untuk RPC WebSocket apa pun.

Terakhir diperbarui

Apakah ini membantu?