# 走进科学 | 4. 使用 Etherscan 快速调用合约

By [web3eye.eth](https://paragraph.com/@web3eye) · 2022-03-17

---

通过项目方提供的网页在进行铸造 NFT、参与热门币种打新等操作时，由于网站访问人数较多，或被黑客恶意 DDOS 攻击，经常会导致 502 请求过载错误打不开网页，多次刷新进入网站后，却提示 ”Sold Out“ 显示售罄，错失参与时机后拍断大腿。

![](https://storage.googleapis.com/papyrus_images/95aa345be6a1e8db2e19f9f3489d1b3429dcd7cf443f5e9ce5124b83c0d4eb51.png)

之前比较热门的 NFT 项目，比如小幽灵 @WeirdoGhostGang 和 Cool Cats @coolcatsnft 的 Pets 发售时，项目方都通过服务器扩容、限制IP等一系列防护措施保障用户体验，而通过 Etherscan 来调用合约则是提供了另一种更为高效的方式，不再受限于项目方提供的网页加载速度。

Etherscan @etherscan 是支持以太坊公链的区块浏览器，提供友好的界面，让用户能够以更容易理解的方式来访问区块链上的数据。通过前面小节的介绍，相信大家已经可以独立获取到项目的合约地址；以 adidas Originals @adidas 的合约地址为例：[https://etherscan.io/address/0x28472a58a490c5e09a238847f66a68a47cc76f0f](https://etherscan.io/address/0x28472a58a490c5e09a238847f66a68a47cc76f0f)。通过链接查看合约地址详情，可以看到 Contract 选项右上角有个绿色的勾，表示合约已通过 Etherscan 开源验证。

选中 Contract 选项后，有 Code、Read Contract 和 Write Contract 三个选项；熟悉 Solidity 合约开发语言的开发者可以通过开源的代码审查合约是否存在漏洞，选择 Code 选项即可浏览完整代码，若未通过开源验证则无法查看代码，只能通过反编译合约查看大致逻辑，一般情况下可读性很差，后续文章中再展开反编译合约的详细介绍；Read Contract 可以查看合约中存储的可读数据，比如 NFT 发行的总量、允许铸造的数量、铸造价格；Write Contract 表示可以通过调用合约提供的接口发起链上交易，比如铸造 NFT 或转移 NFT 等操作。

![](https://storage.googleapis.com/papyrus_images/24500a1262c8a1a8e8d612ba7b613ebbca69e986c5244611fee37f81d8a58b31.png)

本文着重介绍 Write Contract 的使用，需要向链上发起交易需要先链接钱包，点击 Connect to Web3，根据弹窗提示连接 MetaMask 钱包，这时连接按钮会变成绿色 Connected，表示已连接钱包状态；以铸造 NFT 为例，一般铸造 NFT 的接口名称会命名为 mint、publicMint 或 purchase，选择需要调用的接口后，填写铸造价格（单位：ether）和铸造的数量点击 Write 按钮，会唤醒 MetaMask 钱包进行确认交易，确认后则会向链上发起交易；图中提示的错误表示填写的参数不符合要求，或不满足公开铸造条件，这时就可以暂不发起交易，满足条件后再发送交易，避免浪费交易矿工费。

![](https://storage.googleapis.com/papyrus_images/e0371f867b769f4f0ea06d5c23376c8156d45749e018b4445a8caca4eb6b0835.png)

以上就是通过 Etherscan 直接调用合约的方法，前提是合约要公开源代码，区块浏览器通过源代码解析出合约 ABI（Application Binary Interface），然后再提供可视化的界面供用户进行操作；合约 ABI 就是对合约接口的描述，包含合约的接口列表、接口名称、参数类型和返回值的定义，ABI 信息可以在 Code 选项中查看，下一节将介绍如何调用未开源合约的方法。

**关于我们**

[Web3Eye](https://twitter.com/Web3EyeLabs) 是一个专注于技术研究和分享的 Web3 加密技术社区，团队拥有多年区块链研发经验和安全技术能力，以帮助更多人安全地进入 Web3 世界，欢迎关注我们的 [Twitter 帐号](https://twitter.com/Web3EyeLabs)，了解最新动态。

---

*Originally published on [web3eye.eth](https://paragraph.com/@web3eye/4-etherscan)*
