mcpField
S
setup-solidity-contracts

setup-solidity-contracts

github.com/openzeppelin开发219575 次安装2 天前更新
代码仓库

关于 setup-solidity-contracts

用于配置 Solidity 项目的 Skill,适合新建或维护 Hardhat、Foundry 项目的开发者。它说明框架识别、OpenZeppelin 合约安装、Remappings 设置及可升级合约的导入约定。

主要功能

  1. 01识别 Hardhat 或 Foundry 项目
  2. 02提供两种框架的初始化步骤
  3. 03安装标准或可升级版 OpenZeppelin 合约
  4. 04配置 Foundry Remappings
  5. 05区分代理部署与普通合约导入

适用场景

  1. 01为新 Solidity 项目初始化开发框架
  2. 02给现有 Foundry 项目添加 OpenZeppelin
  3. 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