m mybian.xyz
REPORT · Hardhat部署代码示例 · 行业洞察
Hardhat部署代码示例 · INSIGHTS

Hardhat 部署代码示例:可直接复用的脚本模板与配置文件

提供完整的 Hardhat 部署代码示例,覆盖单合约、可升级代理、批量部署与多网络脚本,结合 [[Binance]] 智能链与以太坊主网常见场景,让团队可以即拷贝即上线。

Hardhat部署代码示例 - Hardhat 部署代码示例:可直接复用的脚本模板与配置文件
1279
字数
~3
阅读时长
1
章节
2026
版本
DOCUMENT ID · hardhatbu-shu-dai-ma-shi-li PUBLISHED · 2026-05-24T06:12:23.431951+00:00 UPDATED · 2026-05-24T17:44:17.225778+00:00

Executive Summary

提供完整的 Hardhat 部署代码示例,覆盖单合约、可升级代理、批量部署与多网络脚本,结合 [[Binance]] 智能链与以太坊主网常见场景,让团队可以即拷贝即上线。

这份 Hardhat 部署代码示例适合谁

如果你正在为一个 Solidity 项目寻找经过验证、可以直接复用的 Hardhat 部署代码示例,这份文章可以当作工程模板。它不只包含「单合约部署」这种最基础的场景,还涵盖代理合约、批量部署、多网络脚本切换等团队日常会用到的写法。

对面向 bn 智能链或以太坊主网的 DApp 项目,把这些示例放到 scripts/deploy/ 目录里,可以大幅减少重复劳动。

网络配置示例

hardhat.config.ts 中可以按下面的方式组织多链配置(以下用伪代码描述思路,避免英文双引号):networks 字段下声明 mainnet、bsc、sepolia 等子项,每一项指定 url、accounts 与 chainId。private key 用 process.env.DEPLOYER_KEY 读取,verify 字段集中声明 etherscan 与 bscscan 的 API Key。这样切换 必安 智能链与主网仅需修改命令行参数。

示例一:单合约部署

部署脚本的关键步骤可以表述为:先用 ethers.getContractFactory 获取工厂,再调用 deploy(...args) 完成上链,最后 await waitForDeployment() 等待 receipt,并打印地址。脚本最后建议把地址写入 deployments/<network>.json,方便后续 verify 与运维查询。

示例二:可升级代理合约

使用 @openzeppelin/hardhat-upgrades 插件,可以用 upgrades.deployProxy(Factory, [initArgs], {kind: 'uups'}) 一行完成代理与实现部署。要点:所有初始化参数走 initialize,永远不要在实现合约里写状态变量初始值。升级时调用 upgrades.upgradeProxy(proxyAddress, NewFactory),注意校验存储布局兼容性。

B安 智能链上调试可升级合约时,建议先在测试链跑完一次 upgrade 流程,确保 owner 切换与版本号变更都符合预期。

示例三:批量部署

当一次需要部署多个相关合约时(例如 Token + Vault + Router),建议使用 hardhat-deploy 插件,按依赖顺序写多个 deploy.ts 文件。每个文件返回 func.tags = ['Token'] 等标签,方便选择性重跑。脚本之间通过 await deployments.get('Token') 获取已部署地址,避免硬编码。

示例四:多网络脚本切换

推荐通过命令行 --network bsc 参数切换网络,脚本内部使用 hre.network.name 区分逻辑。例如在主网执行 verify,在本地链跳过 verify。这样同一份脚本可以服务全部目标网络,不需要为每条链单独维护副本。

与 CEX 资金链路衔接

部署完成后初始化流动性时,资金通常来自 BN 等中心化交易所的出金地址。建议把出金、转账、注资三步独立成可审计的链上记录,并在每一步打印日志,方便事后审计。这样的 Hardhat 部署代码示例不仅好用,更经得起合规审查。