在很大程度上,由于部署到通用区块链的智能合约的不变性,安全始终是用户和企业的首要任务。因此,在以太坊上开发智能合约的关键步骤之一是初始部署后的 Etherscan 验证。Etherscan 使任何人,从用户到经验丰富的开发人员和 bug hunter,都可以检查代码的有效性、正确性和安全性。
在之前的文章中,我们学习了如何阅读 Etherscan 上的智能合约以及如何使用 Remix IDE 验证 Etherscan 上的智能合约。在本教程中,我们的目标是了解如何使用最常用的智能合约开发框架之一——Hardhat 来完成验证。
让我们开始吧。
创建一个 Hardhat 项目
让我们先创建一个新的 Hardhat 项目。首先,我们要检查我们机器上安装的 npm 版本。打开你的终端并输入:
npm -v
如果你没有安装 npm,请按照这个指南进行操作。然后,输入以下命令安装 Hardhat:
npm install --save-dev hardhat
如果你使用的是 yarn 而非 npm,请输入:
yarn add --dev hardhat
如果你使用的是 Windows,强烈建议使用 WSL 2。
要创建示例项目,请在项目文件夹中运行以下命令,然后选择“创建 TypeScript 项目”:
npx hardhat
开发一个智能合约
如果前面的步骤工作正常,你现在应该能够看到三个主要的 Hardhat 文件夹:“contracts”、“test”和“scripts”。转到“contracts”文件夹,创建一个新的 Solidity 文件,并将其命名为“PriceFeedConsumer.sol”。然后,复制以下来自 Chainlink 官方文档的源代码。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";
contract PriceConsumerV3 {
AggregatorV3Interface internal priceFeed;
/**
* Network: Goerli
* Aggregator: ETH/USD
* Address: 0xD4a33860578De61DBAbDc8BFdb98FD742fA7028e
*/
constructor(address priceFeedAddress) {
priceFeed = AggregatorV3Interfa