Hardhat + Sepolia:合约验证与 Etherscan 上的交互指南

引言

在 Sepolia 测试网上部署智能合约后,若希望在区块链浏览器(Etherscan)中公开查看源码,并通过“Contract”标签页进行直接交互,就需要 进行合约验证(Contract Verification)。验证后,Etherscan 会将你编译时使用的 Solidity 源码发布出来,与链上字节码进行自动比对,以确认一致性。这一过程不仅能提高透明度,更方便你使用浏览器进行 Read/Write 操作,增强可信度与可操作性。

本文是在 Sepolia 使用 Hardhat 验证智能合约并在 Etherscan 上启用交互

可以手动验证合约,官方教程在这里 传送🚪
下面是我用命令行 verify 合约
在这里插入图片描述

步骤一:获取并配置 Etherscan API Key

1、访问 Etherscan 网站(https://sepolia.etherscan.io 或 etherscan.io),登陆你的账户后进入 “API Keys” 页面;

2、点击 “Add” 新增一个 API Key(测试网与主网共用同一 key);
在这里插入图片描述

3、在项目中设置环境变量:

npx hardhat vars set ETHERSCAN_API_KEY

在这里插入图片描述

4、确认hardhat.config.ts中已有以下配置:

import "@nomicfoundation/hardhat-verify";
import { vars } from "hardhat/config";

const ETHERSCAN_API_KEY = vars.get("ETHERSCAN_API_KEY");

const config: HardhatUserConfig = {
  networks: {
    sepolia: {
      url: `https://sepolia.infura.io/v3/${vars.get("INFURA_API_KEY")}`,
      accounts: [/*...*/],
    },
  },
  etherscan: {
    apiKey: {
      sepolia: ETHERSCAN_API_KEY,
    },
  },
};
export default config;

确保 etherscan.apiKey.sepolia 项正确引用了你的 API key(mixed-case key 必须匹配 network 名称 sepolia)

步骤二:更新插件并验证网络支持

如果你使用的是 @nomiclabs/hardhat-etherscan 插件,请确保它升级到最新版本,因为早期版本可能不支持 Sepolia 网络。

使用 Hardhat 官方推荐插件 @nomicfoundation/hardhat-verify 通常也支持 Sepolia,并可以通过 CLI 执行验证命令。

步骤三:执行 Verify

配置正确后,执行:

构造函数参数要按顺序和类型传入

npx hardhat verify --network sepolia 合约地址 构造函数参数

例如:

npx hardhat verify --network sepolia
0x455596C8FFb5A5A4644594A6f04D9E3E0Cd930FE
“MyConfidentialToken”
“MCT” \

在这里插入图片描述

验证成功后页面展示

出现 ‘Contract’ 标签页
验证成功后,合约地址页面中会新增一个“Contract”标签

Source Code(源代码):完整的智能合约源码公开,包括你提交的 .sol 文件、imports 和 License 信息等。

Compiler & Settings(编译参数):显示你使用的 Solidity 编译器版本、优化设置、EVM 版本、viaIR 是否启用等,确保与你实际部署时一致

Bytecode & ABI:包含完整的 ABI 接口定义,以及 Etherscan 从链上获取的部署字节码信息
在这里插入图片描述

为什么要“上传 ”源代码到浏览器?

这个“上传”过程指的是通过 Etherscan 或 Hardhat 插件将你的 Solidity 源代码、编译参数、构造函数参数等信息提交给 Etherscan 平台进行合约验证。这么做的好处主要包括:

  • 确认源码与链上字节码一致:`Etherscan 使用你的源码重新编译合约,并比对生成的字节码是否与链上的部署字节码一致。一致就表示合约真实可信。

  • 提高透明度与信任度:任何人都可以打开 Etherscan 查看你的代码、理解合约逻辑,而不必依赖第三方解释。

  • 激活交互功能:验证后的合约会自动开启 “Read Contract” 与 “Write Contract” 接口,支持浏览器直接调用合约函数(如 mint、burn)。

总结

效验(Verify)是智能合约上线后的关键一步,它不仅保护源码一致性,也让你在区块浏览器中实时操作,从而方便调试、测试和展示。完成验证后,你就可以在 Sepolia Etherscan 中方便地查看合约、调用函数,甚至配合 Remix 或脚本进行交互。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yoona1020

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值