DApp Inspector:在 Chrome DevTools 里查看 DApp 与钱包之间的全部 RPC 通信

DAppInspector是一个Chrome扩展。装上之后DevTools里会多出一个面板,按时间顺序展示当前tab里DApp与Web3钱包(MetaMask、Rabby、OKXWallet等)之间所有的JSON-RPC调用——包括完整入参、返回值、错误、时延分解

DApp Inspector 是一个 Chrome 扩展。装上之后 DevTools 里会多出一个面板,按时间顺序展示当前 tab 里 DApp 与 Web3 钱包(MetaMask、Rabby、OKX Wallet 等)之间所有的 JSON-RPC 调用 —— 包括完整入参、返回值、错误、时延分解、链 ID、calldata 自动解码,以及一套用于调试的 Block / Throttle / Mock / Replay 规则引擎。

项目地址:https://github.com/beilunyang/dapp-inspector-extension Chrome 商店:https://chromewebstore.google.com/detail/dapp-inspector/bcjlcalkhkfkcchgdokgngemjeemgmcj 介绍页:https://dapp-inspector.chain.moe

它解决什么问题?

DApp 与钱包之间的 RPC 通信对开发者来说一直是个黑盒:

  • 网页点一个按钮,钱包跳出来要签什么、签名前后做了哪些 eth_call 探测、传了什么 calldata,从外面看不到。
  • MetaMask 自带的 activity log 只能看自己钱包发出去的请求,看不到 DApp 一侧的时延、参数处理、错误分支。
  • 调试 DApp 的异常路径(钱包拒绝、网络超时、合约 revert)需要手工构造各种边界条件。
  • 想复现用户反馈的奇怪 bug,需要还原他当时与钱包之间的完整调用序列。

之前我一直靠在 window.ethereum 上手动打 monkey patch 加日志,每个项目都要重写一遍,效率很低。索性做成扩展,所有 DApp 通用。

主要特性

全量捕获

  • 拦截 window.ethereum.request 的所有调用,自动分类为 read / write / sign / subscribe
  • 兼容 EIP-6963 多钱包并存场景
  • 完整记录入参、返回值、错误对象,原始 JSON-RPC envelope 一键复制

时延分解

把一次调用拆成 6 段单独计时:DApp 发起 → 扩展排队 → throttle → 钱包审批 → RPC 往返 → 回到 DApp。可以一眼看出瓶颈是用户审批还是 RPC 节点。

Calldata 自动解码

  • 内置 ERC-20 / 721 / 1155 / Permit2 的 ABI,命中即 0ms 解码
  • 命中不到时按 chainId + 合约地址 查 Sourcify,再降级到 4byte 选择器
  • 拉到的 ABI 本地缓存 7 天,跨页面复用
  • eth_sendTransaction / eth_signTransaction 会额外做风险评分(无限授权、setApprovalForAll 等)

调试规则引擎

  • Block —— 按方法名/origin 匹配,拒掉某些请求并返回自定义错误码,验证 DApp 的错误处理分支
  • Throttle —— 给匹配的请求加延迟,复现慢网络、loading state、超时分支
  • Mock —— 用预设结果短路掉某个调用,不真实上链
  • Replay —— 任何捕获到的调用都能重放一次,JSON 参数现场可编辑,钱包按原流程再次弹窗

隐私与本地化

  • 全部在浏览器本地运行,没有 telemetry、没有账号、没有数据上传
  • ABI 解析的 Sourcify / 4byte 是按需才请求(和加载网页图片同一性质)
  • 简体中文 / English 双语界面

适合谁使用?

  • DApp 前端开发者:调试合约调用、签名流程、错误分支
  • 钱包扩展开发者:观察 DApp 一侧的调用模式和兼容性问题
  • 安全审计 / 反钓鱼研究者:分析未知 DApp 调用了哪些方法、传了什么 calldata、有没有可疑的授权
  • 想了解某个 DApp "幕后到底做了什么" 的 Web3 用户

技术栈

  • Chrome Manifest V3
  • TypeScript / React 18 / Zustand / Tailwind
  • Vite + @crxjs/vite-plugin
  • Vitest(单元)+ Playwright(端到端)
  • 协议:Apache-2.0

截图

DevTools 面板(捕获列表 + 详情):

panel

调用详情(参数 / 返回值 / 时延 / Replay-Mock-Block):

detail

Options 页(规则管理):

options

目前只支持 EVM,Solana / Sui 等其他生态在规划中。欢迎试用、提 issue、贡献代码。另外 README 末尾写了一个 logo 招募说明 —— 如果有设计师朋友感兴趣,欢迎一起完善这个项目。

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
BeilunYang
BeilunYang
江湖只有他的大名,没有他的介绍。