dumtban/protoscan

GitHub: dumtban/protoscan

面向 DeFi 团队的自托管 CLI 工具,用于跨链追踪智能合约协议状态并对比快照间的变更差异。

Stars: 2 | Forks: 0

# protoscan 面向 DeFi 团队的链上协议状态追踪与 diff 工具。 跨链追踪已部署的合约状态——代理实现、admin 地址、协议参数、访问控制——并检测快照之间的变更。 ## 为什么需要 在审计和部署后的运维过程中,我不断重复着相同的手动检查:在 Etherscan 上验证代理实现、跨链比较 admin 地址、检查治理提案是否确实按预期进行了更改。将此乘以 5 条链和 20 个合约,这种方式将变得不可持续。 随着 Defender 即将停服,针对此类需求的工具更是少之又少。`protoscan` 填补了这一空白——这是一个自托管的 CLI 工具,只需一条命令即可为您提供协议链上状态的完整视图。 ## 内置协议注册表 `protoscan` 内置了针对主要 DeFi 协议的精选定义——包含所有已部署链上的合约地址、ABI、参数名称以及访问控制映射。无需额外配置。 ``` protoscan protocols ``` ``` aave-v3 Aave V3 v3.0 5 chains | 10 params | 3 access roles compound-v3 Compound V3 v3.0 3 chains | 13 params | 3 access roles uniswap-v3 Uniswap V3 v3.0 5 chains | 10 params | 2 access roles maker Maker (Sky) vMCD 1 chain | 9 params | 2 access roles eigenlayer EigenLayer v1.0 1 chain | 7 params | 6 access roles pendle Pendle v2.0 2 chains | 5 params | 2 access roles lido Lido v2.0 1 chain | 36 params | 4 access roles morpho-blue Morpho Blue v1.0 2 chains | 20 params | 4 access roles ``` ``` # 完整协议扫描 — contracts、access control、parameters protoscan scan aave-v3 -c ethereum # 保存和比较 protoscan scan aave-v3 -c ethereum -l before-proposal # ... governance 执行 ... protoscan scan aave-v3 -c ethereum -l after-proposal protoscan diff before-proposal after-proposal ``` ## 安装 ``` npm install -g protoscan ``` ## 快速入门 ### 扫描已知协议 ``` protoscan scan morpho-blue -c ethereum ``` 输出: ``` Contracts Morpho: 0xBBBB...FFCb Core immutable lending singleton MetaMorphoFactory: 0xA9c3...6101 Factory deploying MetaMorpho vault instances ... Access Control ✗ Morpho Core Owner holder: 0xcBa2...9AFa Can enable new IRMs/LLTVs and change fee recipient ✗ Vault Owner holder: 0x0A0e...8DD Full control over MetaMorpho vault ... Config Parameters ! reserveFeePercent: 1000 (10.00%) Fee percentage taken from yield as protocol revenue ... ``` ### 追踪您的自定义合约 ``` # 初始化 config protoscan init # 使用你的 contracts 编辑 protoscan.config.json protoscan snapshot -l baseline # ... 时间流逝 ... protoscan snapshot -l current protoscan diff baseline current ``` ## 配置 `protoscan.config.json`: ``` { "chains": { "ethereum": { "rpc": "https://ethereum-rpc.publicnode.com" }, "arbitrum": { "rpc": "https://arbitrum-one-rpc.publicnode.com" } }, "contracts": { "MyPool": { "address": "0x...", "chains": ["ethereum", "arbitrum"], "type": "proxy" } } } ``` ### 合约类型 | 类型 | 描述 | |------|-------------| | `proxy` | ERC-1967 代理——追踪 implementation、admin、beacon | | `raw` | 非代理合约——仅追踪公共状态 | | `gnosis-safe` | Safe 多签——追踪 owners、threshold | ## 命令 | 命令 | 描述 | |---------|-------------| | `protoscan protocols` | 列出内置注册表中支持的协议 | | `protoscan scan -c ` | 扫描已知协议 | | `protoscan snapshot` | 从配置中为自定义合约生成快照 | | `protoscan diff ` | 比较两个快照 | | `protoscan show ` | 显示某个快照 | | `protoscan list` | 列出已保存的快照 | ## 读取内容 - 代理 implementation、admin、beacon (ERC-1967) - Owner、admin、guardian、governance 地址 - Paused 状态、待处理的 ownership 转移 - 协议特定参数(rates、fees、ceilings、limits) - 访问控制角色持有者 - Token 供应量与配置 变更按严重程度分类如下: - **critical** —— implementation 升级、admin/owner 变更、oracle 替换 - **warning** —— paused 状态、fee 变更、beacon 变更 - **info** —— 供应量变更、利用率指标 ## 支持的链 Ethereum、Arbitrum、Optimism、Base、Polygon、Avalanche、BSC、Gnosis、Scroll、Linea、Blast、zkSync。 ## 添加协议 协议定义位于 `src/registry/` 中。每个文件导出一个 `ProtocolDef`,包含合约、部署地址、参数定义和访问控制映射。具体模式请参阅现有定义。 欢迎提交 PR——特别是针对尚未涵盖的协议。 ## 许可证 MIT
标签:DeFi, Homebrew安装, MITM代理, Prisma Cloud, 区块链, 文档结构分析, 智能合约, 暗色界面, 状态追踪, 自动化攻击, 运维监控