地址与合约分析

从一个地址查看合约源码、只读方法、存储布局、代理关系和命名空间存储。

输入合约地址后,可以查看源码、读取公开状态,或定位变量所在的 storage。代理和命名空间存储也可以在这里继续分析。

只查函数或变量时,直接进入对应页面即可。需要从代码一路看到状态时,可按下面顺序查看。

地址分析的 4 步

1. 先确认代码来自哪里

打开 Sources 查看合约文件。代理合约会显示实现合约;加载后可继续查看它的源码和布局。

查看 Sources

2. 读取公开状态

打开 Read Contract,调用 ABI 中的 view 函数。例如用 owner() 查看管理员,或用 balanceOf(address) 查询余额。这里不会发送交易。

使用 Read Contract

3. 查看变量在 storage 中的位置

打开 Storage Layout,查看变量所在的 slot、字节范围和类型。mapping 或数组需要提供 key / index;也可以用其他地址或 JSON 的布局解释当前地址的状态。

查看 Storage Layout

4. 处理代理和命名空间存储

代理地址保存状态,代码和布局通常来自实现合约。使用 Proxy Storage 加载实现合约;遇到 @custom:storage-location 时,用 EIP-7201 Decoder 查看对应 namespace 的布局。

按问题查看

想知道什么从这里开始
合约有哪些文件、函数定义在哪里Sources
某个只读函数返回什么Read Contract
一个变量占用哪个 slot、如何解码Storage Layout
为什么地址指向实现合约,或如何加载实现合约Proxy Storage
namespace 的根 slot 和结构体布局是什么EIP-7201 Decoder