【加密社】如何分析合约代码
加密社
- 原文链接:How to Navigate Contract Code (Solidity) as an Analyst
- 译者:AI翻译官,校对:翻译小组
当你开始研究一个复杂的协议时,通常会遇到一些复杂的示例交易。这些交易往往涉及多个智能合约的调用,并且会产生大量的日志记录。以下是一些步骤和建议,帮助你更好地理解和分析这些示例交易:
你如何浏览这些 Solidity 合约以找到你分析所需的答案和数据?我将在本指南中涵盖一个完整的示例以及我的提示和技巧。
我们将研究新的 Zora x Uniswap 合约,这个合约是在 2024 年 8 月初部署的。
你应该先尝试在 Dune 上搜索涉及某个协议的现有查询或仪表板,因为通常阅读和分叉现有的 SQL 比直接阅读 Solidity 代码更容易。
从交易开始
每当你开始分析一个协议时,你需要找两个关键的示例交易:
- 主要合约部署交易(比如部署新的 NFT 或 Uniswap 池)
- 主要操作交易(比如交换、铸造等)
我说“主要”是因为虽然有很多合约和操作,但它们通常都从一个起始点开始。很多时候,你的起点可能是一条推文,你需要从那里逐步找到这两个交易。
举个例子,我们来看看 Zora 在其协议上的新 Uniswap 扩展。这个扩展基本上允许你创建一个 ERC1155,然后在 Uniswap 上作为 ERC20 进行交易,而不仅仅是在 OpenSea 或 Blur 上交易。
Zora 发布了一份简短的概述指南,还展示了他们在新协议上的第一次铸造。在加密世界里,正式的文档通常会晚一些发布,有时候甚至根本没有。尽管如此,你还是应该先试着找找文档,但在这个例子中,我们将完全依赖链上的数据来进行分析。
第一次铸造
我通常发现获取主要合约和交易的最简单方法是通过自己与产品互动。因此,当它首次上线时,我 铸造了一些 Limitless Zorb。
此交易为我提供了一个可以稍后用于交易量计算的主要操作,但更重要的是,它为我提供了两个主要合约的参考:
-
ZoraTimedSaleStrategyImpl:我知道这肯定是这个升级的新协议核心,因为它是主要的“目标”合约,可能是设置铸造/二级市场配置的地方。
-
Limitless Zorb:我知道这是一个 ERC1155 代币,某种程度上被转换为 ERC20 以便在 Uniswap 上交易。
区块浏览器上的合约页面总是有一个“创建交易哈希”链接(通常你首先会被带到代币页面,然后你必须再次点击合约才能到达合约页面)。
Limitless Zorb 集合合约
所以如果快速汇总一下我们所拥有的信息,我们得到:
-
ZoraTimedSaleStrategy