手把手教你如何通过 EtherScan 查看智能合约
Chainlink
2022-08-11 09:12
订阅此专栏
收藏此文章
不必完全相信开发者,学会自己去验证。


原文标题:《如何在 EtherScan 上读取智能合约》

撰文:Chainlink

 

什么是智能合约?一个最简单的定义是:智能合约是区块链网络中一个不可篡改的程序,如果某些预设条件被满足,这个程序就会被执行。

 

简单来说,智能合约就是一段程序,这段程序代码是透明且不可篡改的,它们在区块链网络上被执行。这个定义非常简单,但是你知道如何通过 EtherScan 来查看一个智能合约吗?

 

怎样阅读一个智能合约的内容

 

在本篇文章中,我们将 NFT 项目 Doodles(https://opensea.io/collection/doodles-official) 作为案例,来看如何在 EtherScan 上查看其智能合约。首先在 OpenSea 找到这个 NFT 项目,然后通过这个项目中的任何一个 NFT,可以找到它背后的智能合约。


找到项目的智能合约

 

 

在 Opensea 的 NFT 项目之中,你可以查看单一的 item,然后在「Detail」下面,你会找到一个链接,会链接到智能合约的地址。点击这个链接,就会跳转到区块链浏览器 EtherScan 中,EtherScan 可以让你看到所有存储在以太坊上的信息。

 

检查被 Verified 的合约

 

一旦你知道了合约的地址,你就可以在 EtherScan 上查看这些合约。Doodles 的合约地址是 0x8a90CAb2b38dba80c64b7734e58Ee1dB38B8992e。当然了,如果合约的代码还没有被验证的话,那么你在 EtherScan 还查看不了。尽管合约的 byte code 是可见的,并且也有可能被反编译,但是这个方法这篇文章中就不讨论了。如果你在「Contract」旁边没有看到一个绿色的对勾标记,那这个合约的代码就没有被验证。

 

 

 查看经过验证的合约

 

如果合约是被验证过的,那它就是可读的。点击「Contract」标签,你就可以看到合约的代码。

 

在这里,根据合约作者验证方法的不同,你有可能会看到一个很大的文件,在这个文件中包含了所有用到的合约,或者是像 Doodles 这样,是很多分开的文件。这里能看到多个合约的原因是,一个合约中经常会引入别的合约。通过引用,合约可以重复使用其他已经验证过的合约,比如说在 Doodles 项目中用到的 OpenZeppelin 的 ERC-721 和 Ownable 合约。

 

 

在这里,你可以查看 Doodles NFT 项目的合约的所有代码,然后通过代码可以确认这个项目的合约有没有它所声明的功能。

 

与合约交互

 

对于经过验证的合约,你可以通过 EtherScan 和智能合约交互。可以在 「Read Contract」 和 「Write Contract」 标签中,使用智能合约的函数,任何人都可以免费使用这个特性,当然写入函数由于对区块链的状态发生了改变,所以需要用到一些 gas。

 

 

为什么查看智能合约很重要


智能合约可以被公开查看这一特性是它的优势之一,任何普通的用户都可以通过查看合约代码,来验证这个合约是否有如同它所说的功能。这样,我们就不用必须相信这个开发者了,而可以自己去验证。

 

找到智能合约并且查看它只是个开始,想要更好地了解智能合约中的内容,你需要了解 Solidity 的基础知识。

 

从哪里开始学习

 

可以关注 Chainlink 预言机并且加入开发者社区,有大量关于智能合约的学习资料以及关于区块链的话题!

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

相关Wiki
Chainlink
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开