用途:在部署合约或编写部署脚本前自动触发,规范 Foundry 部署流程。
主要能力:提供部署前检查清单(forge fmt、forge test、forge test --gas-report、检查 config/.json、用 forge script 加 --fork-url 做 dry-run、cast balance 查余额、必须设置 --gas-limit);给出部署决策规则(默认不加 --verify,用户要求时加 --verify 与 --etherscan-api-key,多链分脚本,代理先部署实现再部署代理,可升级合约用 OpenZeppelin Upgrades 插件而非手写代理);部署后需更新 config/.json 与 deployments/latest.env、用 cast call 验证链上状态、记录 docs/CHANGELOG.md、提交含交易哈希的 PR。
使用方式:dry-run 用 forge script script/Deploy.s.sol:DeployScript --rpc-url <RPC_URL> --gas-limit 5000000 -vvvv;广播前让开发者选择签名方式,推荐 --account <KEYSTORE_NAME>,或用 gitignore 的 .env 执行 source .env 后加 --private-key "$PRIVATE_KEY"。可升级合约需安装 openzeppelin-foundry-upgrades 与 openzeppelin-contracts-upgradeable 并配置 remappings.txt,脚本中用 Upgrades.deployUUPSProxy、Upgrades.upgradeProxy 等,命令需加 --ffi,升级需加 --sender <ADDRESS>。
限制:模板中不得包含 --broadcast,需用户显式添加;禁止在命令、脚本、日志、对话或提交文件中出现明文私钥,不得读取或打印开发者 .env;UnsafeUpgrades 仅限测试;升级时需保留 V1 源码或使用 @custom:oz-upgrades-from 注解。