用途:帮助用户搭建 Solidity 智能合约项目,并集成 OpenZeppelin Contracts。适用于新建 Hardhat 或 Foundry 项目,或为已有项目安装 OpenZeppelin 合约依赖。
框架识别:已有项目可通过 hardhat.config.*(Hardhat)或 foundry.toml(Foundry)判断框架;新项目需询问用户偏好。
Hardhat:新建项目执行 npx hardhat init(Hardhat v2)或 npx hardhat --init(Hardhat v3)。安装依赖:npm install @openzeppelin/contracts。若使用可升级合约,另装 npm install @openzeppelin/contracts-upgradeable。
Foundry:先安装 curl -L https://foundry.paradigm.xyz | bash 与 foundryup。新建项目执行 forge init my-project 并进入目录。添加依赖:forge install OpenZeppelin/openzeppelin-contracts@v<VERSION>;可升级版本为 forge install OpenZeppelin/openzeppelin-contracts-upgradeable@v<VERSION>。版本需从 GitHub releases 查询并固定发布标签,否则 forge install 会拉取可能不稳定的默认分支。
remappings.txt:不使用可升级合约时写入 @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/;使用可升级合约时写入两行映射,指向 openzeppelin-contracts-upgradeable 及其子模块内的同版本副本,该格式为 Etherscan 验证所需,单独安装的 openzeppelin-contracts 副本不会被使用。
导入约定:标准合约如 @openzeppelin/contracts/token/ERC20/ERC20.sol;可升级合约如 @openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol。仅在使用代理部署时用可升级变体,否则用标准合约。
限制:资料未提供具体版本号、其他框架支持或额外配置步骤。