UserOperation 也有标准方法表:ERC-7769 给钱包与打包器定下 RPC 沟通口径 图 1
UserOperation 也有标准方法表:ERC-7769 给钱包与打包器定下 RPC 沟通口径 · 图 1

装了 ERC-4337 智能账户钱包之后,你可能注意到一件事:点下”发送”,钱包并没有调用熟悉的 eth_sendRawTransaction。智能账户的操作走的是一条平行的通道——UserOperation 内存池,而守在池子另一头的服务通常被叫作 bundler(打包器)。这条通道该用什么话沟通,ERC-7769 给出了标准答案。这是一份仍处于草案(Draft)状态的接口规范,下面把它定的方法表、调试开关和对普通用户的意义一次讲清。

为什么智能账户需要另一套 RPC 方法

ERC-4337 用 UserOperation 对象替代了普通交易,把它交给一个独立于主交易池的专用内存池(背景见 ERC-4337 是什么?智能账户怎么执行和付手续费)。原有的以太坊 JSON-RPC 方法是为交易设计的:eth_sendRawTransaction 收的是签好名的交易字节,eth_getTransactionReceipt 查的是交易回执。把这些方法直接套在 UserOperation 上,字段对不上、生命周期也对不上。如果每家打包器各自发明一套私有接口,钱包就得为每个服务商写一遍适配,切换服务商时还要重来。ERC-7769 要解决的正是这种碎片化:让任何钱包对任何符合规范的节点和打包器,都能说同一套话。

eth 命名空间下的六个方法

规范在 eth 命名空间下定义了六个方法,可以和普通交易的用法一一对照:eth_sendUserOperation 把一个 UserOperation 提交进专用内存池;eth_estimateUserOperationGas 在提交前估算所需 gas;eth_getUserOperationByHash 按哈希查它的内容与状态;eth_getUserOperationReceipt 查它最终执行出来的回执;eth_supportedEntryPoints 询问对方支持哪些 EntryPoint 合约地址;eth_chainId 则是老熟人,用来确认双方说的是同一条链。对用户最实用的是后两个查询方法:当钱包提示”已提交但未确认”时,第三方排查工具就是靠前四个方法在专用池和回执之间定位卡点的——这点与 监控工具怎么知道事件发生了:轮询与订阅推送的分工 里讲的轮询与订阅的分工是同一层问题。

debug_bundler 系列:只属于开发调试的后门

规范另开了一组 debug_bundler_ 前缀的方法:clearState 清空状态、dumpMempool 导出池内内容、sendBundleNow 强制立即打包、setBundlingMode 在自动与手动打包间切换、setReputationdumpReputation 读写打包器的信誉记录、addUserOps 直接注入测试用操作。规范专门用一节提醒:这类方法会暴露甚至操纵打包器的内部状态,生产环境的服务端应当把它们关掉,否则等于给外人留了后门,也带来针对专用内存池的拒绝服务风险。如果你在日常使用的公共服务上探测到 debug 方法仍然开放,这本身就是一个值得反馈给服务商的信号。

普通用户什么时候会用到这张表

大多数时候你感知不到它:钱包自动选好服务商,方法在背后被调完。但有三类场景值得把它搬上台面。第一,你自建打包器或换用小众服务商,钱包连不上时的第一步是逐项探测这六个方法的应答是否正常。第二,做批量任务或排障脚本时,eth_supportedEntryPoints 能防止把请求发去不认该 EntryPoint 的节点。第三,当同一笔操作在钱包、浏览器两处的说法矛盾时,用 eth_getUserOperationByHash 与主链浏览器的交易记录交叉核对,比盯界面猜更有据。顺带一提,代付方与钱包之间另有一套 ERC-7677 接口,见 代付服务怎么和钱包说话:ERC-7677 给 paymaster 定的标准接口,和这篇是同一栋楼的两层。

一次典型排障的动线

把上面串成一条可执行的路径:钱包显示操作已发出但长时间无回执时,先向服务商问 eth_chainId,排除把请求发错链的低级可能;再用 eth_getUserOperationByHash 确认操作还在专用池里、还是已经被打包上链——前者的问题在服务端排队与信誉机制,后者的问题在主链执行;若状态显示已上链,用 eth_getUserOperationReceipt 拿到执行结果与失败原因,再拿去和浏览器记录比对。三个查询方法把”卡住了”这团模糊感受切成三段可定位的区间,这正是标准化方法表对普通用户最实在的贡献:任何工具只要能回答这三问,就能接手排障,不必依赖钱包厂商的私有后台。

别忘了它是草案

最后校准预期:ERC-7769 在标准仓库中标注为 Draft,实现覆盖以各钱包与服务商的现文为准;方法字段细节、错误码语义都可能随版本变化,动手前查目标服务的文档。规范本身也声明它不定义 EntryPoint 的内部升级与版本治理,那些是协议层另一摊事。

风险提示:智能账户与打包器交互涉及资产操作,任何接口字段请以官方规范与服务商文档为准,本文不构成投资建议。