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

WebSocket 订阅

Rome EVM 端点支持 Ethereum WebSocket 订阅(eth_subscribe / eth_unsubscribe) 通过 wss://. 连接到与 HTTPS RPC 相同的主机,并使用 wss:// 方案:

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

这就是 ethers / viem WebSocketProvider 在底层使用的方式,因此 .on('block'), contract.on(event),以及 viemwatchEvent / watchBlocks 开箱即用。

订阅类型

类型
触发于
用于

newHeads

每个新区块

区块轮询、余额/nonce 刷新、按区块运行的机器人、索引器

logs

匹配的事件(按 地址 / 主题)

响应合约事件、跨链中继/桥接、交易机器人

newPendingTransactions

已接受但从不发出(Rome 没有公共内存池)

ethers(v6)

import { ethers } from "ethers";

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

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

// logs — 响应合约事件
const contract = new ethers.Contract(address, abi, provider);
contract.on("Transfer", (from, to, value) => {
  console.log("Transfer", from, to, value.toString());
});

viem

原始 JSON-RPC

对于 logs,请将过滤器对象作为第二个参数传入:

注意事项

  • 订阅会在新区块生成时推送更新(延迟大约相当于一个区块时间)。

  • 对于长连接,请在客户端处理重连——这是任何 WebSocket RPC 的标准做法。

最后更新于

这有帮助吗?