关于 setup-solidity-contracts
用于配置 Solidity 项目的 Skill,适合新建或维护 Hardhat、Foundry 项目的开发者。它说明框架识别、OpenZeppelin 合约安装、Remappings 设置及可升级合约的导入约定。
主要功能
- 01识别 Hardhat 或 Foundry 项目
- 02提供两种框架的初始化步骤
- 03安装标准或可升级版 OpenZeppelin 合约
- 04配置 Foundry Remappings
- 05区分代理部署与普通合约导入
适用场景
- 01为新 Solidity 项目初始化开发框架
- 02给现有 Foundry 项目添加 OpenZeppelin
- 03为代理部署配置可升级合约依赖
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ openzeppelin/ openzeppelin-skills --skill setup-solidity-contracts安装后在 Claude Code 中输入/setup-solidity-contracts确认已加载。
详细介绍
Solidity 设置
对于现有项目,可通过查找 hardhat.config.*(Hardhat)或 foundry.toml(Foundry)来检测框架。对于新项目,请询问用户倾向使用哪个框架。
Hardhat 设置
- 初始化项目(仅在开始新项目时)
npx hardhat init # Hardhat v2
npx hardhat --init # Hardhat v3
- 安装 OpenZeppelin Contracts:
npm install @openzeppelin/contracts
- 如果使用可升级合约,还需安装可升级版本:
npm install @openzeppelin/contracts-upgradeable
Foundry 设置
- 安装 Foundry
curl -L https://foundry.paradigm.xyz | bash
foundryup
- 初始化项目(仅在开始新项目时)
forge init my-project
cd my-project
- 添加 OpenZeppelin Contracts:
forge install OpenZeppelin/openzeppelin-contracts@v<VERSION>
- 如果使用可升级合约,还需添加可升级版本:
forge install OpenZeppelin/openzeppelin-contracts-upgradeable@v<VERSION>
请从 https://github.com/OpenZeppelin/openzeppelin-contracts/releases 查找当前版本。请固定到一个发布标签——如果不指定标签,
forge install会拉取默认分支,该分支可能不稳定。
remappings.txt(不使用可升级合约时)
@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/
remappings.txt(使用可升级合约时)
@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/
@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/
注意 上述重映射意味着
@openzeppelin/contracts/(包括代理合约)和@openzeppelin/contracts-upgradeable/均来自openzeppelin-contracts-upgradeable子模块及其子目录,其中包含同一发布版本号的openzeppelin-contracts副本。Etherscan 验证需要采用这种格式。特别是,单独安装的任何openzeppelin-contracts副本都不会被使用。
导入约定
- 标准版:
@openzeppelin/contracts/token/ERC20/ERC20.sol - 可升级版:
@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol - 仅在通过代理部署时使用可升级版本;否则使用标准合约。
评论
支持 Markdown